2011-09-16 23 views
46

EDIT: Đặt chính xác những gì đã được thực hiệnLàm thế nào để ssh đến localhost mà không cần mật khẩu?

Tôi cần SSH localhost mà không cần mật khẩu, cách thông thường để thực hiện nó (với khóa công khai) không hoạt động.

[email protected]:~$ rm -rf .ssh/* 
[email protected]:~$ ssh-keygen -t rsa > /dev/null 
Enter file in which to save the key (/home/user/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
[email protected]:~$ ls .ssh/ 
id_rsa id_rsa.pub 
[email protected]:~$ ssh-copy-id -i localhost 
The authenticity of host 'localhost (::1)' can't be established. 
RSA key fingerprint is f7:87:b5:4e:31:a1:72:11:8e:5f:d2:61:bd:b3:40:1a. 
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added 'localhost' (RSA) to the list of known hosts. 
[email protected]'s password: 
Now try logging into the machine, with "ssh 'localhost'", and check in: 

    .ssh/authorized_keys 

to make sure we haven't added extra keys that you weren't expecting. 

[email protected]:~$ ssh-agent $SHELL 
[email protected]:~$ ssh-add -L 
The agent has no identities. 
[email protected]:~$ ssh-add 
Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa) 
[email protected]:~$ ssh-add -L 
ssh-rsa ...MY KEY HERE 

[email protected]:~$ ssh-copy-id -i localhost 
[email protected]'s password: 
Now try logging into the machine, with "ssh 'localhost'", and check in: 

    .ssh/authorized_keys 

to make sure we haven't added extra keys that you weren't expecting. 

[email protected]:~$ ssh localhost echo 'testing' 
[email protected]'s password: 

[email protected]:~$ 

Vì vậy, như bạn có thể thấy trong lệnh cuối cùng, bạn vẫn hỏi mật khẩu! Làm cách nào để khắc phục điều đó? Ubuntu-10.04, OpenSSH_5.3p1

EDIT2:

Thêm một số thông tin về sshd

[email protected]:~$ cat /etc/ssh/sshd_config | grep Authentication 
# Authentication: 
RSAAuthentication yes 
PubkeyAuthentication yes 
RhostsRSAAuthentication no 
HostbasedAuthentication no 
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication 
ChallengeResponseAuthentication no 
# PasswordAuthentication yes 

EDIT3: ADING kết quả từ $ ssh -vv localhost

$ssh -vv localhost 
... 
debug1: Authentications that can continue: publickey,password 
debug1: Next authentication method: publickey 
debug1: Trying private key: /home/user/.ssh/identity 
debug1: Offering public key: /home/user/.ssh/id_rsa 
debug2: we sent a publickey packet, wait for reply 
debug1: Authentications that can continue: publickey,password 
debug1: Trying private key: /home/user/.ssh/id_dsa 
debug2: we did not send a packet, disable method 
debug1: Next authentication method: password 
[email protected]'s password: 

Trả lời

99

tôi sau 3 bước để tạo mật khẩu ít đăng nhập

1. ssh-keygen -t rsa 
Press enter for each line 
2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
3. chmod og-wx ~/.ssh/authorized_keys 
+1

Hoạt động như một sự quyến rũ! Cảm ơn –

+1

Tôi có thể ssh không mật khẩu mà không sử dụng bước 3? Khi nào tôi cần làm bước 3? –

+2

@Rich: đó chỉ là để bảo vệ chống lại những gì [@shipr đề cập trong câu trả lời của mình bên dưới] (http://stackoverflow.com/a/10744443/98528). Nếu '~/.ssh/authorized_keys' của bạn đã tồn tại và có quyền chính xác, (3.) là không cần thiết, nhưng cũng không gây hại. – akavel

13

đã phát hiện ra vấn đề.

Chạy máy chủ với debuging:

$sshd -Dd 

tôi thấy nó đã không thể đọc auth_key

$chmod 750 $HOME 

cố định nó.

+3

Tại sao các bạn không sử dụng chế độ chmod biểu tượng? Nó không phải là 90 nữa, phải không? –

+5

Vì chế độ biểu tượng khó hiểu. Tôi không biết 750 sẽ là cái gì trên đầu mình. một cái gì đó như 'u = rwx, g = rx, o =' Dù nó là gì, nó cũng không dễ dàng hơn 750! Btw, 755 perms cũng hoạt động tốt. –

+0

Rất hữu ích. Tôi đã sử dụng '/ usr/sbin/sshd -ddddD' và nhận được thông báo sau' Xác thực bị từ chối: quyền sở hữu hoặc chế độ xấu cho thư mục/home/... ' – Leonardo

10

Một có thể trả lời: tệp authorized_keys có thể tồn tại và có thể đọc được. Nhưng nếu nó là nhóm hoặc thế giới có thể ghi, nó vẫn sẽ nhắc mật khẩu. Câu trả lời cho rằng vấn đề là

chmod og-wx ~/.ssh/authorized_keys 
+0

Hoạt động tốt hơn bất cứ điều gì tôi đã đọc cho đến nay. – OcuS

2

làm các bước sau

ssh-keygen -t rsa -C "[email protected]" 
# Creates a new ssh key, using the provided email as a label 
# Generating public/private rsa key pair. 

Sử dụng tập tin mặc định và mật khẩu rỗng (Chỉ cần nhấn enter trong 2 bước tiếp theo)

# start the ssh-agent in the background 
eval "$(ssh-agent -s)" 
# Agent pid 59566 
ssh-add 

Sao chép nội dung của ~/.ssh/id_rsa.pub tới ~/.ssh/authorized_keys

Đảm bảo đây là các điều khoản

ls -l .ssh/ 
total 20 
-rw-r--r--. 1 swati swati 399 May 5 14:53 authorized_keys 
-rw-r--r--. 1 swati swati 761 Jan 12 15:59 config 
-rw-------. 1 swati swati 1671 Jan 12 15:44 id_rsa 
-rw-r--r--. 1 swati swati 399 Jan 12 15:44 id_rsa.pub 
-rw-r--r--. 1 swati swati 410 Jan 12 15:46 known_hosts 

Ngoài ra, đảm bảo các điều khoản cho thư mục .ssh được. Đây cũng là quan trọng

drwx------. 2 swati swati 4096 May 5 14:56 .ssh 
1

Hai bước đơn giản:

ssh-keygen -t rsa <Press enter for each line> 
ssh-copy-id localhost 

Nhập mật khẩu và bạn đã hoàn tất.

1

Cách thực hiện đúng và an toàn là sao chép các phím như đã được nói ở đây.

Trong các trường hợp khác, sshpass có thể hữu ích.

sshpass -p raspberry ssh [email protected] 

Hãy nhớ rằng điều này không an toàn chút nào. Mặc dù nó không phải là một ý tưởng tốt để sử dụng nó trong môi trường an toàn, nó có thể hữu ích cho kịch bản, kiểm tra tự động ...

này có thể được kết hợp với

ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]92.168.0.145 

để tránh những câu hỏi xác nhận rằng ngăn chặn kịch bản xảy ra.

Một lần nữa, chỉ sử dụng điều này trong các hệ thống phát triển nơi các máy khác nhau chia sẻ IP và bảo mật không quan trọng.

https://ownyourbits.com/2017/02/22/easy-passwordless-ssh-with-sshh/

0

là câu trả lời chấp nhận làm, nếu bạn encount một vấn đề của

Agent admitted failure to sign using the key. 

bạn cần phải

ssh-add 
0

tôi phải đối mặt với cùng một vấn đề thậm chí sau khi làm theo tất cả các khuyến nghị , nhưng phát hiện ra rằng vấn đề là với sự can thiệp bằng phím gnome.

Giải pháp:

  1. Go Tìm kiếm, tìm kiếm “Startup Applications”
  2. Nếu bạn thấy “SSH Key Agent”, bỏ chọn hộp
  3. Khởi động lại máy tính và kết nối với localhost.
+0

Điều này không cung cấp câu trả lời cho câu hỏi. Khi bạn có đủ [danh tiếng] (https://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bất kỳ bài đăng nào] (https://stackoverflow.com/help/privileges/comment); thay vào đó, [cung cấp câu trả lời không yêu cầu làm rõ từ người hỏi] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-thay thế). - [Từ đánh giá] (/ đánh giá/bài đăng chất lượng thấp/17994750) – kometen

Các vấn đề liên quan