Der Befehl ssh-add fügt dem ssh-agent nicht meine Identität hinzu

20

Ich habe gerade Ubuntu 13.10 installiert und wollte gerade meine Identität zu meinem SSH-Agenten hinzufügen, also habe ich ein Terminal geöffnet und dies getan

bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ ssh-add
bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ 

irgendwelche Ideen?

Bjorgvin
quelle

Antworten:

26

Von man ssh-add :

ssh-add fügt dem Authentifizierungsagenten ssh-agent (1) private Schlüsselidentitäten hinzu. Wenn es ohne Argumente ausgeführt wird, werden die Dateien ~ / .ssh / id_rsa, ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa und ~ / .ssh / identity hinzugefügt. [...]

Identitätsdateien sollten nur vom Benutzer gelesen werden können. Beachten Sie, dass ssh-add Identitätsdateien ignoriert, wenn andere darauf zugreifen können.

Aufgrund eines The agent has no identities.Fehlers verfügen Sie wahrscheinlich nicht über diese Dateien, oder möglicherweise können andere auf diese Dateien zugreifen. Sie können dies mit dem folgenden Befehl überprüfen:

ls -l ~/.ssh

Führen Sie außerdem nach dem Ausführen des ssh-addBefehls Folgendes ausecho $? den Fehlerstatus des vorherigen Befehls anzuzeigen. Wenn der Beendigungsstatus 0 zurückgab, wurde der Befehl erfolgreich ausgeführt. Wenn der Beendigungsstatus einen Wert ungleich Null zurückgab, konnte der Befehl nicht ausgeführt werden.

Siehe man ssh-addfür weitere Informationen.

Radu Rădeanu
quelle
stimmt, ich habe diese Dateien nicht und der Exit-Wert von ssh-addwar 1, aber nicht 0. Es gibt offensichtlich ein Problem mit meinen Berechtigungen, da die Dateien nicht erstellt werden. Irgendeine Idee, wie ich das beheben könnte? das verzeichnis ~/.sshexistiert (ist leer) aber es wird nicht ls -l
angezeigt
Ich habe diesen Befehl ausgeführt, ssh-keygen -q -t rsa -N 'password' -f ~/.ssh/id_rsaalso hat man ssh-keygen geholfen, danke.
Bjorgvin
1
Das hat mir den Importhinweis in die richtige Richtung gegeben. Ich hatte mehrere SSH-Schlüssel und musste zuerst den richtigen Schlüssel mit ssh-add <Schlüsselname> hinzufügen. Dann hat es geklappt wie ein Charme. thx
paulroho
3
Aus irgendeinem Grund hatte ich keine Ausgabe, als ich ssh-addnach der Eingabe der Passphrase lief (es schlug $?fehl, wie in Kapitel 1 beschrieben). Ich habe es chmod 600 ~/.ssh/id_rsa* ohne Glück versucht . Ich habe einen neuen Schlüssel von Grund auf neu generiert ssh-keygenund dann hat es funktioniert. Traurig, aber es ist zumindest ok now (Der fehlgeschlagene Schlüssel wurde mit generiert ssh-keygen -t rsa -b 4096 -C "[email protected]", ich lief ssh-keygendiesmal nur stattdessen.)
GabLeRoux
1
Ich musste in dieser Reihenfolge Folgendes tun: (Generieren Sie ggf. einen neuen SSH-Schlüssel, und stellen Sie sicher, dass Sie den PUB-Schlüssel zu Github hinzufügen.) cd ~/.ssh && ls -lahÄndern Sie anschließend alle Schlüssel, um die Lese- / Schreibberechtigungen im SSH-Ordner anzuzeigen mit) chmod 400 myKeydann , ssh-add **ABSOLUTE**pathToKey wenn Sie das nicht stimmen ABSOLUTE Weg, es wird nicht funktionieren. Dann testen Sie es mitssh -vT [email protected]
jungledev
3

Zusätzlich zu den obigen Überlegungen stellte ich fest, dass Sie möglicherweise eine alternative Shell konfigurieren müssen, um ssh-agent zu laden. Zum Beispiel in Zsh, muss man hinzufügen , ssh-agentum pluginsin .zshrc.

Diese Methode funktioniert hervorragend unter Ubuntu 17.10 mit der neuesten Version von Zsh

Andere fanden, dass mit id_ed25519Schlüsseln, rsaohne ein Plugin funktioniert. Starten Sie die Shell nach dem Hinzufügen ssh-agentzu ~/.zshrcmit neu exec "$SHELL"und führen Sie Folgendes aus:ssh-add ~/.ssh/id_ed25519

Enter passphrase for ~/.ssh/id_ed25519: 
Identity added: ~/.ssh/id_ed25519 (user@host)
Tohuw
quelle
Fügen Sie das ssh-agent-Plugin über die folgenden Anweisungen zu .zshrc hinzu: github.com/robbyrussell/oh-my-zsh/tree/master/plugins/ssh-agent
Kariem