我有一个在 VMWare VM 上运行的 Arch 服务器。我通过将 ssh 连接从端口 X 转发到服务器上的端口 22 的防火墙连接到它。昨天,我开始收到错误消息“Bash:Fork:资源暂时不可用”。我可以以 root 身份登录并毫无问题地管理事物,但似乎当我以我通常使用的用户身份 ssh 登录时,ssh session 现在产生了数百个 ssh-agent/bin/bash session 。反过来,这会耗尽系统上的所有线程和文件描述符(据我所知)并使其无法使用。到目前为止,我能找到的一点点信息告诉我,我必须有某种循环,但这直到昨天才发生,可能是在我运行更新时。在这一点上,我愿意接受建议。
最佳答案
你的一个 shell 初始化文件可能正在生成一个 shell,当读取 shell 初始化文件时,它会生成一个 shell,等等。
您提到了 ssh-agent/bin/bash
。将 this 放入 .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
中。
关于linux - ssh 连接产生了数百个 ssh-agent/bin/bash 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38643962/