Verwenden Sie private Schlüssel nur von ssh-agent, um "zu viele Authentifizierungsfehler" zu vermeiden.

1121
MoLLIa

Ich speichere alle meine privaten Schlüssel verschlüsselt in der encfs-Datei. Ich mounte (entschlüssle) die encfs-Datei in den Ordner, füge alle privaten Schlüssel mit einem Lifetime-Flag zu ssh-agent hinzu und hebe den Ordner auf. In diesem Fall wurden meine privaten Schlüsseldateien verschlüsselt und ich konnte über ssh-agent darauf zugreifen.

Meine Schlüsselliste wurde immer umfangreicher und ich erhielt die Meldung "Zu viele Authentifizierungsfehler für% username%". Ich habe nach einer Problemumgehung gesucht. Im Allgemeinen wird empfohlen, jedes IdentityFile in ~ / .ssh / config anzugeben

Host hostalias Hostname my.host.name User username IdentityFile ~/.ssh/unencrypted_key 

In diesem Fall sollten meine Schlüssel jedoch immer unverschlüsselt gespeichert werden, da ssh direkt darauf zugreift (ssh-agent ignoriert).

Gibt es eine mögliche Lösung, um anzugeben, welcher private ssh-Schlüssel (vom ssh-agent) für welchen Host verwendet werden soll?

PS Jeder Schlüssel hat seinen eigenen Fingerabdruck, und ich nahm an, dass dies durch die Angabe in der Konfiguration gelöst werden könnte (etwa so):

Host hostalias Hostname my.host.name User username IdentityFingerPrint 0c:d6:e6:64:0f:b5:1f:29:11:51:12:74:90:55:49:ae 

Aber ich habe nichts Ähnliches gefunden.

3

1 Antwort auf die Frage

1
grawity

Beachten Sie zunächst, dass private SSH-Schlüsseldateien selbst und ohne zusätzliche Tools wie encfs mit einer Passphrase verschlüsselt werden können. Mit ssh-keygen -f <file> -pwürde die Passphrase gesetzt. (Aktuelle OpenSSH-Versionen verwenden dazu AES-128-CBC.)

Wenn Sie beide IdentityFile und einen Agenten ausführen, verwendet ssh die Datei lediglich als Hinweis, wenn Sie den zu verwendenden Schlüssel auswählen. Dafür muss nur die öffentliche Hälfte des Schlüssels überprüft werden. Sie müssen die Schlüssel also nicht entschlüsselt lassen, solange der öffentliche Schlüssel in eine entsprechende .pubDatei extrahiert wurde. Dies wird standardmäßig durchgeführt, kann jedoch wiederholt werden ssh-keygen -f <file> -y.

Wenn Sie sich auf verschiedenen Servern anmelden, müssen Sie die Dateien erneut auf allen Computern verteilen. (Obwohl es nur der öffentliche Teil ist ...) Robert Siemer vor 9 Jahren 0