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