尝试打开shell时,SSH会话挂起


1

从今天早上起,我无法使用SSH在我的服务器上正常登录。

通常,在输入时:

ssh foo@bar.org

shell挂起并且没有获得shell。使用-vv的最后一行详细信息告诉我:

debug2: shell request accepted on channel 0

也就是说,如果我直接在SSH中启动命令,例如:

ssh foo@bar.org 'ls ~'

......它似乎正常工作,它给了我预期的输出。实际上,我可以通过输入以下命令强制bash以交互模式启动来获取shell:

ssh foo@bar.org 'bash -i'

我还尝试禁用我的.bashrc文件(通过将其移动到.bashrc_OLD),但它似乎没有任何帮助。

任何建议将不胜感激,谢谢!

编辑:我也尝试用sh登录,但它既不起作用。因此,我认为这与配置文件问题无关。

编辑2:当我设法使用-i标志获取shell时,这是我从控制台获得的附加消息:

bash: cannot set terminal process group (-1): Invalid argument
bash: no job control in this shell

Answers:


2

我认为您需要检查远程passwd数据库(默认情况下/etc/passwd)并查看有哪些shell(您可以通过直接运行它来检查它,就像您已经使用某些命令一样)。在您的主目录中除了shell点文件之外的其他地方是/etc/pam.d,然后您应该检查您的远程~/.ssh目录,特别是如果您使用密钥登录。

终端问题可能意味着bash -i期望一个终端,它可以被触发ssh -t(在直接运行命令时默认关闭它)。


1

看起来你没有安装/ dev / pts(在服务器上)。通过其他方式登录(物理控制台)并安装它,mount -tdevpts pts /dev/pts/然后再试一次。

如果您没有物理访问服务器,可以尝试从您的客户端:( ssh foo@bar.org 'mount -tdevpts pts /dev/pts/'未测试)


-1

我有类似的滞后,发现禁用反向DNS解决了这个问题。

UseDNS no

/etc/ssh/sshd_config

重新启动并尝试


它不起作用,我害怕。还请注意,这不仅仅是一个延迟,因为它在“shell请求......”之后无限期挂起。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.