![tmux 启动和 ssh-agent 转发问题](https://linux22.com/image/21552/tmux%20%E5%90%AF%E5%8A%A8%E5%92%8C%20ssh-agent%20%E8%BD%AC%E5%8F%91%E9%97%AE%E9%A2%98.png)
我添加了以下几行(摘自这里)到我的 .bashrc 以在登录时自动启动 tmux 会话:
if [ "$PS1" != "" -a "${STARTED_TMUX:-x}" = x -a "${SSH_TTY:-x}" != x ]
then
STARTED_TMUX=1; export STARTED_TMUX
sleep 1
( (tmux has-session -t remote && tmux attach-session -t remote) || (tmux new-session -s remote) ) && exit 0
echo "tmux failed to start"
fi
但是,这似乎会破坏后续登录时的 ssh 代理转发。有没有解决的办法?
答案1
您可以使用此模式来解决您的问题:https://superuser.com/questions/180148/how-do-you-get-screen-to-automatically-connect-to-the-current-ssh-agent-when-re
这允许您动态更新 SSH 代理连接以反映每个连接;我认为它使用屏幕,但 tmux 应该是非常相同的模式。
原理是使用 SSH 代理套接字的符号链接,该符号链接可以在 tmux 内更改 - 然后在新的 SSH 会话中连接时更新该符号链接。