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:

2voto

Don Davis Punkte 95

Unter Centos 7

LÖSUNG

1 create rsa key
2 vim /etc/ssh/ssh_config
3
#   IdentityFile ~/.ssh/identity
uncoment this line > IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa

Anmerkung *Ich habe dies getan, nachdem ich den Schlüssel und einige der anderen Antworten vor dieser kopiert hatte. Ich bin mir aber ziemlich sicher, dass dies alles ist, was Sie tun müssen, aber wenn nicht, würde ich den rsa-Schlüssel an authorized_keys anhängen und auch die

ssh-copy-id an benutzername@localhost

1voto

nachoparker Punkte 1570

Der korrekte und sichere Weg ist das Kopieren der Schlüssel, wie es hier bereits beschrieben wurde.

In anderen Fällen, sshpass kann praktisch sein.

sshpass -p raspberry ssh pi@192.168.0.145

Denken Sie daran, dass dies keineswegs sicher ist. Auch wenn es keine gute Idee ist, es in sicheren Umgebungen zu verwenden, kann es für Skripte, automatisierte Tests usw. nützlich sein.

dies kann kombiniert werden mit

ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no pi@192.168.0.145

um Bestätigungsfragen zu vermeiden, die eine Skripterstellung verhindern.

Auch dies sollte nur in Entwicklungssystemen verwendet werden, bei denen verschiedene Rechner eine IP gemeinsam nutzen und die Sicherheit keine Rolle spielt.

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

1voto

J.stack Punkte 27

Als die akzeptierte Antwort tun, wenn Sie auf ein Problem stoßen, das

    Agent admitted failure to sign using the key.

müssen Sie

    ssh-add

1voto

Ananth Joshi Punkte 11

Ich hatte das gleiche Problem, auch nachdem ich alle Empfehlungen befolgt hatte, fand aber heraus, dass das Problem mit gnome-keyring zusammenhing.

Lösung:

  1. Gehen Sie auf Suchen und suchen Sie nach "Startup Applications".
  2. Wenn Sie "SSH Key Agent" sehen, deaktivieren Sie das Kontrollkästchen
  3. Starten Sie den Rechner neu und verbinden Sie sich mit localhost.

1voto

LazyRay Punkte 11

Ich habe das ssh-Anmeldeproblem auf diese Weise gelöst.

Ich generiere die Schlüsselpaare auf meiner Serverseite und übertrage dann den privaten Schlüssel per Scp auf meinen Windows 10-Computer zurück.

Zuvor habe ich Schlüsselpaare verwendet, die von meinem Windows-10-Laptop generiert wurden, und ich hatte überhaupt kein Glück.

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