Wann möchte ich starten (oder neu starten) ssh-agentEs 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 -gxIch 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 setenvsiehe mein edit. type ist aber schön. Es scheint eine Kombination von zu sein which und functions.
type setenv