Saya menghubungkan melalui SSH dari mesin tempat kunci saya disimpan, meneruskan ke mesin kedua, dan kemudian mencoba menggunakan kunci dari dalam tmux. Saya tampaknya "kehilangan" penerusan saat memasuki tmux. Bagaimana cara "teruskan lagi" sehingga saya dapat menggunakan kunci saya dari dalam 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)
Jawaban yang Diterima:
Jika Anda melampirkan sesi tmux yang sudah ada, shell tidak mewarisi variabel lingkungan dari shell login Anda. Khususnya, itu tidak akan mewarisi variabel lingkungan agen ssh.
Coba perbaikan ini:
-
Buat skrip ini dan taruh di $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
-
Tambahkan ke skrip startup shell Anda. Misalnya jika Anda menggunakan bash:
echo '. ~/.ssh/saveagent' >> ~/.bash_login
-
Setelah melampirkan tmux, jalankan
. $HOME/.ssh/latestagent
Mengapa Volume Lvm Terenkripsi (Perangkat luks) Tidak Dapat Dipasang Saat Booting?
Bagaimana Cara Menghasilkan Prompt Ps1 Di Bash Atau Ksh93 Mirip Dengan Tcsh?