Připojuji se přes SSH ze stroje, kde jsou mé klíče uloženy, přesměrovávám je na druhý počítač a pak se snažím použít klíče z tmux. Zdá se, že při zadávání tmux „ztrácím“ předávání. Jak mohu „znovu přeposlat“, abych mohl používat své klíče z tmux?
$ 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)
Přijatá odpověď:
Pokud připojujete již existující relaci tmux, shell nedědí proměnné prostředí z vašeho přihlašovacího shellu. Zejména nedědí proměnné prostředí agenta ssh.
Zkuste tuto opravu:
-
Vytvořte tento skript a vložte jej do $HOME/.ssh/saveagent
#!/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
-
Přidejte jej do spouštěcího skriptu shellu. Pokud například používáte bash:
echo '. ~/.ssh/saveagent' >> ~/.bash_login
-
Po připojení tmux spusťte
. $HOME/.ssh/latestagent
Proč se šifrovaný svazek Lvm (zařízení Luks) nepřipojí při spouštění?
Jak vytvořit výzvu Ps1 v Bash nebo Ksh93 podobné Tcsh?