首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么ssh-agent -k`不杀死ssh-agent (macOS),或者为什么`SSH_AGENT_PID`没有设置?

为什么ssh-agent -k`不杀死ssh-agent (macOS),或者为什么`SSH_AGENT_PID`没有设置?
EN

Unix & Linux用户
提问于 2020-10-24 22:58:04
回答 2查看 3.6K关注 0票数 1

我在试着解决一个突然爆发的短命SSH连接。这些连接是从我的Mac (MBP,Catalina10.15.6,zsh)启动到我网络上的一些Linux“设备”,尤其是树莓派。连接终止后,它们将消息client_loop: send disconnect: Broken pipe留在终端中。

然而,

:如果它与我的直接问题

有关,这只是作为背景提供的

为什么命令ssh-agent -k不杀死ssh-agent**?**

它似乎失败了,因为没有设置环境变量SSH_AGENT_PID。根据我在我的Mac终端应用程序中看到的,我已经猜到了这一点:

1.列出与ssh相关的进程:

代码语言:javascript
复制
% 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

PID 2138ssh-agent**,其他PID是活动的** ssh连接到覆盆子或Ubuntu都是Linux。

2.杀死ssh-agent IAW man ssh-agent__:

来自man ssh-agent**:**

代理-c x- -s -k -k杀死当前代理(由SSH_AGENT_PID环境变量提供)。

代码语言:javascript
复制
% 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

% 

我可以使用ssh-agent **或使用** pkill ssh-agent**来杀死kill 2138,所以答案可能是苹果的of_ _ssh-agent_不提供variable_ _SSH_AGENT_PID_环境。但如果答案是这样的话,这就引出了另一个问题:_Is有一个不分配环境variable_ _SSH_AGENT_PID__?**_的正当理由

还请注意,一个相关问题。然而,针对这个问题的OP并没有确定他的SSH客户端主机是macOS。他还表示,SSH_AGENT_PID没有设置,但似乎只关心ssh-agent是如何启动的。在我的例子(macOS)中,ssh-agent是在启动ssh连接时启动的。我在“相似的问题”建议框中找到了其他问题,我读了其中的几个,但没有一个看上去和我的一样。

EN

回答 2

Unix & Linux用户

发布于 2022-08-02 00:48:31

这个答案

来自man 页面

当ssh-agent启动时,它会打印设置其环境变量所需的shell命令,然后可以在调用的shell中计算这些变量,例如eval `ssh-agent -s`

因此,运行ssh-agent只显示设置环境变量的命令,而不是实际设置它们,除非使用eval

票数 3
EN

Unix & Linux用户

发布于 2021-08-25 17:00:19

我在ubuntu 18.04上也有过同样的问题。在使用pidof ssh-agent获取ID之后,以下内容对我起了作用:

代码语言:javascript
复制
export SSH_AGENT_PID=<pid>
eval `ssh-agent -k`
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/616241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档