ssh连接产生了数百个ssh-agent / bin / bash实例

时间:2016-07-28 18:17:51

标签: linux ssh archlinux

我在VMWare VM上运行了一个Arch服务器。我通过防火墙连接到它,该防火墙将ssh连接从端口X转发到服务器上的端口22。昨天,我开始收到错误" Bash:Fork:资源暂时不可用"。我可以以root用户身份登录并毫无问题地管理事物,但似乎当我作为我通常使用的用户进行ssh时,ssh会话现在会产生数百个ssh-agent / bin / bash会话。反过来,这会耗尽系统上的所有线程和文件描述符(来自我所知道的)并使其无法使用。到目前为止,我能够找到的一点点信息告诉我,我必须有某种循环,但直到昨天才发生这种情况,可能是在我运行更新时。在这一点上,我愿意接受建议。

2 个答案:

答案 0 :(得分:1)

你的一个shell初始化文件可能会产生一个shell,当读取shell初始化文件时会生成一个shell等等。

您提到了ssh-agent /bin/bash。将放在.bashrc中肯定会导致问题,因为这会指示ssh-agent生成bash ...

相反,请使用类似

的内容
if [[ -z "$SSH_AUTH_SOCK" ]]; then
  eval $(ssh-agent)
fi

.bashrc(或.xinitrc .xsession中,用于具有图形登录的系统)。

或者可能(未经测试):

if [[ -z "$SSH_AUTH_SOCK" ]]; then
  ssh-agent /bin/bash
fi
.bash_profile中的

答案 1 :(得分:0)

在我的情况下(Windows)是因为用完外壳后我没有退出,所以它们没有被丢弃。

完成后使用ctrl+d或键入exit终止ssh代理