79 Stimmen

Wie ssh zu localhost ohne Passwort?

EDIT: Genaue Angabe, was gemacht wurde

Ich muss SSH localhost ohne Passwort, die übliche Art und Weise zu tun (mit öffentlichen Schlüsseln) nicht funktionieren.

user@PC:~$ rm -rf .ssh/*
user@PC:~$ 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: 
user@PC:~$ ls .ssh/
id_rsa  id_rsa.pub
user@PC:~$ 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.
user@localhost'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.

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

user@PC:~$ ssh-copy-id -i localhost 
user@localhost'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.

user@PC:~$ ssh localhost echo 'testing'
user@localhost's password: 

user@PC:~$ 

Wie Sie im letzten Befehl sehen können, wird immer noch das Passwort abgefragt! Wie kann ich das beheben? Ubuntu-10.04, OpenSSH_5.3p1

EDIT2:

Hinzufügen einiger Informationen über den sshd

user@PC:~$ 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: Hinzufügen des Ergebnisses von $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
user@localhost's password:

195voto

user2402070 Punkte 1876

Ich habe die folgenden 3 Schritte durchgeführt, um die passwortlose Anmeldung zu erstellen

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

21voto

shipr Punkte 2729

Eine weitere möglich Antwort: Die Datei authorized_keys kann existieren und lesbar sein. Wenn sie jedoch von einer Gruppe oder der ganzen Welt beschreibbar ist, wird sie trotzdem nach dem Passwort gefragt. Die Antwort auf DIESES Problem lautet

chmod og-wx ~/.ssh/authorized_keys

21voto

canesin Punkte 1847

Ich habe das Problem entdeckt.

Ausführen des Servers mit Debugging:

$sshd -Dd

Ich habe festgestellt, dass es den auth_key nicht lesen kann

$chmod 750 $HOME

Es wurde korrigiert.

10voto

Rohit Patwa Punkte 1042

Zwei einfache Schritte:

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

Geben Sie das Passwort ein und Sie sind fertig.

6voto

swatisinghi Punkte 599

Führen Sie die folgenden Schritte aus

ssh-keygen -t rsa -C "your_email@example.com"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.

Verwenden Sie die Standarddatei und die leere Passphrase (drücken Sie in den nächsten 2 Schritten einfach die Eingabetaste)

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

Kopieren Sie den Inhalt von ~/.ssh/id_rsa.pub nach ~/.ssh/authorized_keys

Vergewissern Sie sich, dass die folgenden Berechtigungen vorhanden sind

 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 

Stellen Sie außerdem sicher, dass die Berechtigungen für das .ssh-Verzeichnis korrekt sind. Dies ist ebenfalls wichtig

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X