Speichern Sie von ssh-add hinzugefügte Identitäten, damit sie erhalten bleiben

4082
timotree

Ich habe vor kurzem opensshso eingerichtet, dass ich es verwenden konnte git.

Beim Einrichten (wie in diesem Artikel beschrieben ) habe ich die folgenden Befehle ausgeführt:

$ eval "$(ssh-agent -s)" $ ssh-add ~/.ssh/<name of key> 

Einige Zeit später, nachdem ich mich ab- und wieder angemeldet hatte, versuchte ich zu verwenden, git pushbekam ich einen Fehler. Die Lösung für diesen Fehler bestand darin, dieselben Befehle erneut auszuführen.

Bitte sag mir, wie ich kann

  • Halten Sie das ssh-agentLaufen so dass ich nicht einen neuen starten muß
  • Denken Sie an die Schlüssel, die ich hinzugefügt habe, damit ich sie nicht jedes Mal hinzufügen muss

Zur Klarstellung verwende ich zsh, sodass bestimmte Bash-Funktionen in meiner .zshrc nicht funktionieren.

8
Sie sollten mit dem Verständnis von 'ssh-agent' beginnen und wissen, wie es funktioniert, bevor Sie versuchen, Ihrem verdrehten Anwendungsfall gerecht zu werden. Jakuje vor 7 Jahren 0
Was für einen Fehler hast du? Jakuje vor 7 Jahren 0
@Jakuje Der Fehler betraf einen fehlenden Pubkey und fragte "Haben Sie ssh-agent gestartet?". timotree vor 7 Jahren 0

2 Antworten auf die Frage

11
Jakuje

Was ist ssh-agentund wie funktioniert es?

Damit ssh-agentbleiben Ihre entschlüsselten Schlüssel sicher im Speicher und in Ihrer Sitzung. Es gibt keine vernünftige und sichere Möglichkeit, die entschlüsselten Schlüssel zwischen Neustarts und erneuten Anmeldungen zu bewahren.

OK, wie kann ich es automatisieren?

ssh-agentStartup automatisieren

Hinzufügen

[ -z "$SSH_AUTH_SOCK" ] && eval "$(ssh-agent -s)" 

zu Ihrem ~/.bashrcoder einem anderen Startskript ( ~/.zshrc).

Automatisieren Sie das Hinzufügen der Schlüssel

Die Schlüssel können bei der ersten Verwendung beim Hinzufügen automatisch hinzugefügt werden

AddKeysToAgent yes 

zu deinem ~/.ssh/config.

Weitere Informationen finden ~/.ssh/configSie unter man ssh_config.

Sie sagen also, wenn ich AddKeysToAgent aktiviere, wenn ich `eval" $ (ssh-agent -s) "eingebe, dann fügt es meinen Schlüssel hinzu? timotree vor 7 Jahren 0
Wenn der Agent ausgeführt wird und Ihre `ssh` diese Option unterstützt, dann ja. Jakuje vor 7 Jahren 0
Kannst du bitte klären, wie ich dann den `ssh-agent` automatisieren würde? timotree vor 7 Jahren 0
Grundsätzlich wie in der anderen Antwort erläutert. `[-z" $ SSH_AUTH_SOCK "] && eval $ (ssh-agent)` Jakuje vor 7 Jahren 0
Funktioniert das mit zsh? timotree vor 7 Jahren 0
Ja, aber in diesem Fall handelt es sich nicht um "~ / .bashrc", sondern um "~ / .zshrc" oder eine ähnliche Datei. Jakuje vor 7 Jahren 0
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/49566/discussion-between-timotree-and-jakuje). timotree vor 7 Jahren 0
3
Savitoj Singh

Fügen Sie dies zu ~/.bashrc

if [ -z "$SSH_AUTH_SOCK" ] ; then eval `ssh-agent -s` ssh-add fi 
Dies war eine gute Antwort, erklärt aber nicht, was der Befehl bewirkt. timotree vor 7 Jahren 1