Wann möchte ich starten (oder neu starten) ssh-agent
Es gibt mir ein paar Befehle, die ich ausführen soll eval $(ssh-agent)
. Natürlich schlägt dies für Fische fehl, da es die Syntax für bash oder csh gibt.
Die Befehle sehen wie folgt aus:
SSH_AUTH_SOCK=/var/folders/v4/c116f_790t7g58lh3jbr7_vm0000gq/T//ssh-L95xhmGl9FZo/agent.36846; export SSH_AUTH_SOCK;
SSH_AGENT_PID=36847; export SSH_AGENT_PID;
echo Agent pid 36847;
oder für csh:
setenv SSH_AUTH_SOCK /var/folders/v4/c116f_790t7g58lh3jbr7_vm0000gq/T//ssh-Tf8etHZfP9k3/agent.36873;
setenv SSH_AGENT_PID 36874;
echo Agent pid 36874;
Die csh-Version läuft ohne Beanstandung, wenn ich das tue eval (ssh-agent -c)
, und dann echo $SSH_AGENT_PID $SSH_AUTH_SOCK
gibt die erwartete Ausgabe an. In neuen Shells bleiben diese Variablen jedoch nicht erhalten. Was macht setenv
tun? klar es set
s Variablen irgendwie, aber es ist nirgends in der Dokumentation. Wenn ich ein neues Terminal starte, gehen die Variablen verloren, sodass ich nicht sicher bin, ob sie exportiert wurden.
Das habe ich gerade gefunden setenv
ist eine Fischfunktion mit Definition set -gx
Ich nehme an, es setzt die Variable als global
Variable und exportiert es. Ich verstehe den Gültigkeitsbereich der Variablen nicht gut, deshalb ist das das Richtige für die ssh-agent
Variablen?
Für den Kontext mache ich dies auf der Grundlage von Anweisungen bei github . Ich benutze seit Jahren einen SSH-Schlüssel für Github und habe das noch nie getan ssh-agent
oder ssh-add
Ding, aber ich bemerkte es beim Einrichten auf einem neuen Computer. Es scheint auch, dass os x ssh-agent alleine ausführt (oder etwas anderes, das ich in der Vergangenheit schon lange eingerichtet habe), weil es es gibt $SSH_AUTH_SOCK
bereits. Also ist es vielleicht nicht wichtig, dies zu tun? ssh-add
läuft ohne Beanstandung auch ohne Rennen ssh-agent
.
functions setenv
siehe mein edit. type
ist aber schön. Es scheint eine Kombination von zu sein which
und functions
.
type setenv