
Ich habe eine Schlüsseldatei namens KEY
, die KEY
und enthält KEY.pub
. Ich lade die öffentliche Datei in hoch authorized_keys
und füge die private Datei mit hinzu
ssh-add /home/user/.ssh/KEY
Aber wenn ich versuche, eine Verbindung herzustellen , werde ich ständig nach dem Kennwort gefragt.ssh [email protected]
Wenn ich einen Schlüssel mit erzeuge ssh-keygen
und den Standardschlüsselnamen belasse, den Pub hochlade und den Private lade,nichtein Passwort anfordern.
Was könnte das Problem sein?
Antwort1
Mit können Sie die Debug-Ausgabe abrufen und diese wird Ihnen wahrscheinlich mitteilen, dass die Authentifizierung mit (der Standardschlüsseldatei von SSH) nicht möglich ist. Die Antwort besteht darin, SSH mitzuteilen, welcher Schlüssel verwendet werden soll:ssh -vvv [email protected]
~/.ssh/id_rsa
ssh -i /home/user/.ssh/KEY [email protected]
Sie können auch Ihre Host-Schlüsseldatei zu Ihrem hinzufügen .ssh/config
, dann müssen Sie nur noch eingeben ssh host.com
und Benutzer/Schlüssel werden automatisch ausgewählt.
Beispieleintrag für .ssh/config(Weitere Informationen finden Sie unter man ssh_config
):
Host mysshserver ssh.host.com
HostName ssh.host.com
User myusername
IdentityFile ~/.ssh/mykeyfile
Erklärung der Schlüsseldateien von man ssh
:
-i identity_file
Selects a file from which the identity (private key) for RSA or
DSA authentication is read. The default is ~/.ssh/identity for
protocol version 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for pro‐
tocol version 2. Identity files may also be specified on a per-
host basis in the configuration file. It is possible to have
multiple -i options (and multiple identities specified in config‐
uration files).
Antwort2
So richten Sie Ihre Schlüsseldateien richtig ein (How-ToHier), beachte das Folgende:
Falls Ihr Host- .ssh
Verzeichnis und Ihre Dateien nicht über die richtigen Berechtigungen verfügen UND/ODER Ihr Remote-Benutzer-Home-Verzeichnis nicht über die richtigen Berechtigungen verfügt, fragt SSH weiterhin nach dem Kennwort, obwohl es die Schlüsseldatei findet.
Ob Ihre Schlüsseldatei/en angeboten werden, können Sie sehen mitssh -vvv user@host
Beispielausgabe:
debug1: Offering DSA public key: /Users/<user>/.ssh/id_dsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
Überprüfen Sie sowohl .ssh
die Berechtigungen für das Home-Verzeichnis des Remote-Benutzers als auch für das Remote-Verzeichnis.
Die Berechtigungen sollten beispielsweise wie folgt lauten:
$ls -ld .ssh
drwx------ 2 <owner> <group> 4096 2011-12-29 20:39 .ssh
$ls -ld ~/
drwxr-xr-x 28 <owner> <group> 4096 2011-12-29 20:15 /home/<user>/