我有一台服务器,它可以正常进行身份验证并打印 lastlogin 横幅,但随后立即断开连接。但是,我可以毫无问题地执行非交互式命令(例如,我可以看到主目录)。ssh [email protected] ls
我已经做了一些阅读和研究,并尝试了许多事情。
- 我远程重启了机器
ssh -t [email protected] /bin/sh
(和/bin/tcsh
和/bin/bash
和/bin/csh
)的行为都类似于ssh [email protected]
- 我查看了主目录中的 .bashrc 和 .bash_profile,它们看起来很好。
- 我已经创建了第二个帐户(我可以
adduser
通过 ssh 运行),新帐户遇到了同样的问题。 - 我已经检查了 /var/log/messages、/var/log/secure 等,没有什么明显的错误。
- 我已经尝试使用详细程度进行 ssh,即使以最大详细程度进行,连接似乎也会无缘无故地关闭。
- /etc/passwd 看起来很好并且指向用户有效的现有 shell。
- 主目录存在
- 网络连接(包括 DNS 解析)似乎很好
- 机器上的负载看起来很轻,没有列出意外的进程,内存正常,并且磁盘有足够的可用空间。
我没有这台机器的控制台访问权限,因此我犹豫是否尝试修改可能会导致进一步失去连接的文件(即,如果我破坏了 /etc/ssh/sshd_config,则无法恢复)。
除了供应商大约一个月前打过操作系统补丁外,没有明显迹象表明此问题何时发生。我确实有供应商的票据,但我不确定。
更新:-t
例如,不使用 ssh 选项并执行 shell 确实可以完成一些工作。没有上次登录、没有横幅、没有提示,但它确实接受来自 stdin 的输入并运行命令。ssh [email protected] /bin/bash
更新:另一个有趣的消息。在已知良好的服务器上尝试了以下操作,它列出了 /dev/pts/ 设备,但在此服务器上我们得到的是“不是 tty”:
ssh -t [email protected] tty
[email protected]'s password:
not a tty