Ist es möglich, einen SSH-Agenten für eine neue Tmux-Sitzung zu starten?

Ist es möglich, einen SSH-Agenten für eine neue Tmux-Sitzung zu starten?

Ich habe viele Hacks gesehen, um den Kontakt mit dem SSH-Agenten einer GUI-Sitzung aus Tmux- (und Bildschirm-)Sitzungen heraus wiederherzustellen. Ich frage mich, ob es möglich ist, sich von der GUI abzukoppeln und einen SSH-Agenten ausschließlich für die Verwendung innerhalb einer bestimmten Tmux-Sitzung zu starten. Müsste der Agent selbst eines der Tmux-Fenster „verbrauchen“, um nicht beendet zu werden, oder ist es möglich, einen im Hintergrund zu starten, der bestehen bleibt, solange die Sitzung aktiv ist?

Antwort1

OK, ich habe noch ein bisschen herumgestöbert und sollte in der Lage sein, mich problemlos mit dem SSH_AGENT zu verbinden, der vorhanden ist, wenn das Terminal angeschlossen ist. tmux stellt bereits die Schlüsselkonfiguration „update-environment“ bereit, das fehlende Teil ist jedoch, dass vorhandene Shells nicht auf magische Weise aktualisiert werden. tmux verfolgt jedoch die aktualisierten Umgebungsvariablen, sodass das Update-Skript viel weniger hackig ist als Screens:


# Sync the environment of an existing shell
#
#  tmux already updates the environment according to
#  the update-environment settings in the config. However
#  for existing shells you need to sync from from tmux's view
#  of the world.
function tmux_sync_env
{
    external_env=`tmux showenv | grep -v "^-"`
    export ${external_env}
}

Davonbegehen

Antwort2

Ich musste @stsquad's ändernAntwort. Bei mir schlug der Fehler fehl, weil der Befehl die Variable exportnicht festlegen konnte .SSH_CONNECTION

Ich musste den Wert SSH_CONNECTIONin Anführungszeichen setzen.

function tmux_sync_env
{
    ssh_auth_sock=`tmux showenv | grep "^SSH_AUTH_SOCK"`
    ssh_connection=`tmux showenv | grep "^SSH_CONNECTION"`
    export ${ssh_auth_sock}
    export "${ssh_connection}"
}

Antwort3

Eine weitere Option, die ich kürzlich gefunden habe, ist Daniel Robbins'SchlüsselanhängerDienstprogramm, das eine praktische Möglichkeit zur erneuten Verbindung bietet und über einen benutzer-/hostweiten Agenten statt nur über einen sitzungsweiten Agenten verfügt.

verwandte Informationen