当我尝试通过 ssh 登录 CentOS 机器时,输入密码后它挂起。我可以通过控制台进入系统,当我运行时,w
我可以看到正在为尝试登录的用户运行“cvs 服务器”。
USER TTY FROM LOGIN IDLE PCPU WHAT
root pts/1 systemname 11:37 1:14m 0.00s cvs server
在安全日志中,它看起来像是一个有效的登录:
Accept password for root from 172.0.0.17 port 53270 ssh2
pam_unix(sshd:session): session opened for user root by (uid=0)
它看起来像一个正常的登录,但它永远不会真正给我提示。我试过重启 SSHD 服务,同样的问题。这是一个生产盒,所以我有点犹豫要重新启动它。我似乎在日志文件中找不到任何可疑的内容。
当我运行ssh -vvv
并尝试连接时,它看起来也很好,但在“请求接受通道..”之后我从未收到登录消息。这是 -vvv 结尾的粘贴:
debug2: channel 1: request shell confirm 1
debug3: send packet: type 98
debug2: callback done
debug2: channel 1: open confirm rwindow 0 rmax 32768
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 1
debug2: PTY allocation request accepted on channel 1
debug2: channel 1: rcvd adjust 2097152
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 1
debug2: shell request accepted on channel 1
另外,我通过网络防火墙查看它是否正在丢弃数据包或其他东西,没有发生类似的事情。我也尝试过其他一些系统,同样的问题。
我以前从未见过这个,似乎无法找到关于这个确切问题的任何好信息。任何帮助,非常感谢!
编辑:我在这里只有一个 root 帐户,没有.bashrc
或者.bash_profile
我可以在 root 或其他任何地方找到。但是,我确实看到了 ancvs.sh
和 a cvs.csh
in /etc/profile.d/
。我确实看到了一个 for 循环,/etc/profile/
它正在寻找要/etc/profile.d/
在启动时运行的脚本。
以下是这些脚本的内容:
简历文件
# change default from rsh to ssh for cvs command
export CVS_RSH=${CVS_RSH-ssh}
cvs.csh
# change default from rsh to ssh for cvs command
if ( "$?CVS_RSH" == 0 ) setenv CVS_RSH ssh
我想也许它正在寻找,cvs
但server
我在脚本目录中没有看到任何与服务器有关的东西。还有其他地方我应该寻找吗?我看过配置文件的所有正常地方,什么都没有。
谢谢!
我找到了麻烦制造者。
sshd_config
里面有一个旧条目ForceCommand cvs server
。一旦我调整了评论标记并重新启动服务,我就可以正常登录了。实际上,我最初浏览了这个文件,但没有一点一点地检查所有内容。本来可以为我节省一两个小时来彻底完成任务......