Ich verbinde mich über SSH von einem Computer, auf dem meine Schlüssel gespeichert sind, an einen zweiten Computer weiter und versuche dann, die Schlüssel in tmux zu verwenden. Ich scheine die Weiterleitung zu „verlieren“, wenn ich tmux eingebe. Wie kann ich „erneut weiterleiten“, sodass ich meine Schlüssel innerhalb von tmux verwenden kann?
$ ssh [server] -o ForwardAgent=yes
$ git pull # Succeeds.
$ /bin/bash
$ git pull # Still succeeds, despite new shell.
$ exit
$ tmux attach
$ git pull # Permission denied (publickey)
Akzeptierte Antwort:
Wenn Sie eine bereits vorhandene tmux-Sitzung anhängen, erbt die Shell die Umgebungsvariablen nicht von Ihrer Login-Shell. Insbesondere werden die Umgebungsvariablen des SSH-Agenten nicht geerbt.
Probieren Sie diesen Fix aus:
-
Erstellen Sie dieses Skript und legen Sie es in $HOME/.ssh/saveagent
ab#!/bin/sh SSHVARS="SSH_CLIENT SSH_TTY SSH_AUTH_SOCK SSH_CONNECTION DISPLAY" for var in ${SSHVARS} ; do echo "export $var="$(eval echo '$'$var)"" done 1>$HOME/.ssh/latestagent
-
Fügen Sie es Ihrem Shell-Startskript hinzu. Zum Beispiel, wenn Sie Bash verwenden:
echo '. ~/.ssh/saveagent' >> ~/.bash_login
-
Führen Sie nach dem Anhängen des tmux
. $HOME/.ssh/latestagent