Frage

Ich verwende ssh-agent mit kennwortgeschützten Schlüssel auf Linux. Jedes Mal, wenn ich in eine bestimmte Maschine einzuloggen, ich dies tun:

eval `ssh-agent` && ssh-add

Das funktioniert gut genug, aber jedes Mal, wenn ich mich anmelden und das tun, erstelle ich eine anderen ssh-agenten. Einmal in einer Weile, werde ich ein killall ssh-agent sie zu ernten. Gibt es eine einfache Möglichkeit, den gleichen ssh-agent-Prozess in verschiedenen Sitzungen wieder zu verwenden?

War es hilfreich?

Lösung

einen Blick auf Keychain haben. Es wurde b Menschen in einer ähnlichen Situation selbst geschrieben. Keychain

Andere Tipps

Wie viel Kontrolle haben Sie über diese Maschine? Eine Antwort wäre ssh-agent als Daemon-Prozess ausgeführt werden. Weitere Optionen sind auf dieser Webseite erklärt, im Grunde um zu sehen, testen, ob der Agent um ist und dann laufen sie es ist, wenn nicht.

Um eine der Ideen zu reproduzieren hier:

SSH_ENV="$HOME/.ssh/environment"

function start_agent {
     echo "Initialising new SSH agent..."
     /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
     echo succeeded
     chmod 600 "${SSH_ENV}"
     . "${SSH_ENV}" > /dev/null
     /usr/bin/ssh-add;
}

# Source SSH settings, if applicable

if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     #ps ${SSH_AGENT_PID} doesn’t work under cywgin
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
         start_agent;
     }
else
     start_agent;
fi 

Sie können tun:

ssh-agent $SHELL

Dies wird dazu führen, ssh-agent, wenn die Shell beendet zu verlassen. Sie werden noch nicht über mehrere Sitzungen hinweg geteilt werden, aber zumindest werden sie gehen weg, wenn Sie tun.

Je nachdem, welche Shell Sie verwenden, können Sie verschiedene Profile für Login-Shells und nur regelmäßig neue Schalen gesetzt. In der Regel wollen Sie ssh-agent für Login-Shells, aber nicht für jeden Sub-Shell starten. In bash würden diese Dateien .bashrc und .bash_login, zum Beispiel.

Die meisten Desktop-Linux-Versionen in diesen Tagen ssh-agent für Sie ausführen. Sie fügen Sie einfach Ihre Schlüssel mit ssh-add und übermittelt dann die Schlüssel zu entfernten SSH-Sitzungen, indem Sie

ssh -A
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top