Was genau macht ssh-add?

15

Ich habe kürzlich meinen Laptop neu installiert und festgestellt, dass "Git Clone" nicht funktioniert. Ich erhielt ständig Permission denied (publickey).Fehler.

Das Update ist auf der Seite mit den SSH-Problemen von GitHub dokumentiert : Verwenden ssh-addSie diese Option, um SSH über den Schlüssel zu informieren, den ich zur Authentifizierung bei GitHub verwenden möchte.

Meine Frage ist: Was macht ssh-addeigentlich unter der Haube ?

Ich habe vor, mein Verständnis von SSH für eine Weile zu erweitern, und dies scheint eine gute Ausrede zu sein, um zu beginnen :-)

Duncan Bayne
quelle

Antworten:

21

ssh-addFügt ~/.sshdem Authentifizierungsagenten ( ssh-agent) private Schlüsselidentitäten (aus Ihrem Verzeichnis) hinzu , damit der SSH-Agent die Authentifizierung für Sie erledigen kann und Sie am Terminal keine Passwörter eingeben müssen.

Peter John Acklam
quelle
Ich bin ehrlich, das hat mich eine Weile verwirrt. Ich dachte, der SSH-Client verwendet immer den Schlüssel in Ihrem ~/.sshVerzeichnis. Tun einige Distributionen das Äquivalent von ssh-addautomatisch? Vielleicht war ich deswegen verwirrt?
Blong
4
sshverwendet den Schlüssel im ~/.sshVerzeichnis, aber wenn der Schlüssel durch eine Passphrase geschützt ist, muss diese Passphrase irgendwann eingegeben werden. Wenn Sie ssh-agentund verwenden ssh-add, geben Sie diese Passphrase einmal ein. Andernfalls müssen Sie die Passphrase bei jeder Verwendung eingeben ssh. Wenn der Schlüssel nicht kennwortgeschützt ist, können Sie ihn verwenden, sshohne nach einer Passphrase gefragt zu werden.
Peter John Acklam
Es kann mehr SSH - Schlüssel in sein ~/.sshund dies könnte die nützlicheren Sache zu haben, finden Sie auf SO und bitbucket docs
Frank Nocke
0

Basierend auf diesem Artikel in Github wird dieser Fehler manchmal auf einigen Linux-Distributionen angezeigt , auch wenn Sie alles richtig eingerichtet haben:

Agent admitted failure to sign using the key.
debug1: No more authentication methods to try.
Permission denied (publickey).

Und du solltest rennen ssh-add, um das Problem zu lösen.

Sadegh
quelle