我正在使用以下行的变体:
export SSH_AUTH_SOCK=$(find /tmp/ssh-* -name agent.\* -uid $(id -u)|head -n 1)
在 Github 上找到。这样,我应该能够使用远程系统上的转发代理连接,即使从内部screen
或tmux
。但是,如果我与远程计算机建立两个单独的 SSH 连接,并且它们都运行单独的 实例,该怎么办ssh-agent
?
问题可以归结为:
ssh-agent
我是否应该首先避免启动另一个实例?- 如果上一点的答案是否定的,我该如何选择现存的假设此刻有多个正在运行的套接字,那么应该使用哪个套接字进行连接?
附加问题:是否存在类似陈旧套接字的情况?即,当我使用上述命令查找套接字时事实证明可能存在陈旧套接字。刚刚遇到了这个问题。find
,我是否会得到两个替代方案,其中一个已经损坏/陈旧?或者当拥有套接字的进程死亡时,套接字是否会自动清理?
答案1
ssh-agent
首先,你应该避免启动多个进程。你可以使用类似命令pgrep -u <your_username> ssh-agent
来检测进程的 PID ssh-agent
(或缺少 PID)。