Sea*_*mus 3 ssh openssh ssh-agent
我正在尝试解决突然爆发的短期 SSH 连接问题。这些连接是从我的 Mac(MBP、Catalina 10.15.6 zsh
)发起到我的网络上的一些 Linux “设备”,特别是Raspberry Pies。连接终止后,他们将消息留client_loop: send disconnect: Broken pipe
在终端中。
但是:这仅作为背景提供,以防与我眼前的问题相关:
ssh-agent -k
不杀死ssh-agent
?似乎失败是因为SSH_AGENT_PID
未设置环境变量。我根据我在 Mac 终端应用程序中看到的内容猜测:
1.列出ssh相关进程:
% pgrep -f ssh
2138
75076
75942
75943
75944
% ps 2138
PID TT STAT TIME COMMAND
2138 ?? S 0:00.26 /usr/bin/ssh-agent -l
Run Code Online (Sandbox Code Playgroud)
PID2138
是ssh-agent
,其他 PID 是ssh
与 Raspberry 或 Ubuntu 盒子的活动连接 - 所有 Linux。
2.杀死ssh-agent
IAW man ssh-agent
:
从man ssh-agent
:
ssh-代理 [-c | -s] -k
-k 终止当前代理(由 SSH_AGENT_PID 环境变量指定)。
% ssh-agent -k
SSH_AGENT_PID not set, cannot kill agent
% sudo ssh-agent -k
SSH_AGENT_PID not set, cannot kill agent
% echo $SSH_AGENT_PID
%
Run Code Online (Sandbox Code Playgroud)
我可以杀死ssh-agent
using kill 2138
, 或 with pkill ssh-agent
,所以看来答案可能是Apple的版本ssh-agent
不提供环境变量SSH_AGENT_PID
。但如果这就是答案,就会引发另一个问题:是否有不分配环境变量的正当理由SSH_AGENT_PID
?
另请注意一个相关问题。然而,该问题的 OP 并未指出他的 SSH 客户端主机是 macOS。他还表示SSH_AGENT_PID
尚未确定,但似乎只关心如何ssh-agent
开始。就我而言 (macOS),ssh-agent
在启动 ssh 连接时启动。我在“类似问题”建议箱里找到了其他问答;我读过其中一些,但似乎没有一个与我的相同。