Der Befehl
eval $(ssh-agent)
Startet den SSH-Agentenprozess (entspricht Pageant) und erstellt normalerweise zwei Umgebungsvariablen: SSH_AUTH_SOCK und SSH_AGENT_PID (zumindest unter Linux wissen Sie nicht, ob Windows git-bash hier einen Unterschied macht; wahrscheinlich nicht).
Wenn die Variable SSH_AUTH_SOCK gesetzt ist und auf einen gültigen Authentifizierungs-Agent-Socket verweist, kann jeder Prozess, der die Variable lesen kann, diese verwenden. Sie brauchen also nur einen Weg, um den Wert dieser Variablen von einer git-bash-Sitzung zu einer anderen zu verbreiten. Die Variable SSH_AGENT_PID ist nur eine Bequemlichkeit, damit der Agent bei Bedarf leicht beendet werden kann.
Wenn Sie diese Umgebungsvariablen (oder auch nur SSH_AUTH_SOCK) in einer Datei speichern können, damit Ihre nachfolgenden git-bash-Fenster sie lesen können, können Sie sie folgendermaßen skripieren:
Immer wenn ein neuer git-bash gestartet wird (dh mit dem .bashrc
Skript oder dessen git-bash-Äquivalent)
- Überprüfen Sie, ob die Umgebungsvariablendatei des SSH-Agenten vorhanden ist
- Wenn die Datei existiert:
- Lies es
- Wenn der in der Datei aufgeführte Agent-Socket (und optional der Prozess) noch vorhanden ist, verwenden Sie die Variablen in der aktuellen Sitzung so wie sie sind
- else (dh wenn die Datei nicht vorhanden war oder ihre Informationen veraltet waren):
- Lauf
eval $(ssh-agent)
- Erstellen Sie eine neue Umgebungsvariablendatei für den SSH-Agenten
- Lauf
- erledigt!
Möglicherweise müssen Sie auch die SSH-git-URL in vollständiger Form eingeben, d. H. git@server.name/project.git
Sie sollten sie einfach wie folgt eingeben :
ssh://git@server.name/project.git
Technisch gesehen ist das Formular ohne ssh://
Präfix nur eine kurze Hand, die bequemer in der Befehlszeile eingegeben werden kann.