SSH 在身份验证后挂起

SSH 在身份验证后挂起

当我通过 ssh 登录到我的某个服务器时,它在身份验证后就挂起了。这是客户端上的输出-v

OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to host1 [10.6.27.64] port 22.
debug1: Connection established.
debug1: identity file /home/user/.ssh/identity type -1
debug1: identity file /home/user/.ssh/id_rsa type 1
debug1: identity file /home/user/.ssh/id_dsa type -1
debug1: loaded 3 keys
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'host1' is known and matches the RSA host key.
debug1: Found key in /home/user/.ssh/known_hosts:172
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
No credentials cache found

debug1: Unspecified GSS failure.  Minor code may provide more information
No credentials cache found

debug1: Unspecified GSS failure.  Minor code may provide more information
No credentials cache found

debug1: Next authentication method: publickey
debug1: Trying private key: /home/user/.ssh/identity
debug1: Offering public key: /home/user/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = C
debug1: Sending env LC_ALL = C
Last login: Wed May 21 10:24:14 2014 from host2
This machine has been configured with kickstart
host1 in bcinf17 in bay 3 in rack D10-Mid

/var/log/secure服务器上我看到了这个(幸运的是我仍然打开了一个会话):

May 21 10:27:31 host1 sshd[12387]: Accepted publickey for user from 1.1.11.239 port 34135 ssh2
May 21 10:27:31 host1 sshd[12387]: pam_unix(sshd:session): session opened for user user by (uid=0)

因此,没有出现任何明显错误。客户端和服务器似乎能够通信。没有任何问题/var/log/messages

磁盘空间充足。一些路径已安装(包括主区域),但我的仍处于活动状态的 shell 可以正常访问它们。

我可以连接到其他服务器;只有这台服务器有问题。我尝试过重新启动sshd。的配置文件sshd看起来像是默认的,所以里面什么都没有。据我所知,最近没有任何变化。

尝试运行命令(ssh host1 -t bash,或-t vi)似乎也挂起了,所以不要认为这与我的登录脚本有关。

还尝试过从同一位置和其他位置的其他主机登录,或通过 Putty 从 Windows 登录,并使用密码而不是密钥登录。

不确定还要去哪里找或者尝试什么。

这是 RHEL 6.4 服务器,64 位。

答案1

有几种情况可能会导致 SSH 身份验证后挂起。

但是大多数情况还会出现其他症状(SSH 身份验证后立即挂起是最明显的症状)

  1. 正如 Iain 提到的,任何用户登录脚本。
    • ~/.bashrc、、、等等~/.bash_profile​​~/.profile~/.kshrc
  2. 正在运行/重新启动的进程太多。
    • 有些程序有fork()太多的子进程,负载(1/5/15 得分) 太高。
  3. 存在 I/O 等待问题。
    • 通常是由硬盘损坏(常见)或网卡性能不佳(罕见)引起的。
  4. 第三方 PAM 模块挂起(例如:非标准 Kerberos 配置)
    • 并不总是模块本身,但有时是某处具有完整日志服务器的服务(如审计)。

答案2

如果使用的话,它能直接连接吗ssh -o GSSAPIAuthentication=no user@host

如果是这样,系统可能会在决定使用 GSSAPI 方法时挂起。对我来说,只有一个主机这样做,所以我只是~/.ssh/config为该主机禁用了 GSSAPI:

Host badHostName
    GSSAPIAuthentication no

我从http://germanrumm.eu/fixing-ssh-login-delay-how-to-disable-gssapi-with-mic-on-ubuntu-linux/但始终没有真正了解其原因。

答案3

另一个麻烦源可能是等待 ssh-agent 的 ssh 客户端(当然,所有配置为使用它的客户端)。如果 ssh'ing任何地方卡在

debug1: 已收到 SSH2_MSG_NEWKEYS

然后检查ps auxw | grep askpass其可能未引起您注意的对话框。

PS:这相当不是罪魁祸首,但我还没有谷歌搜索更多相关内容问题到目前为止。

答案4

我希望你现在已经解决了你的问题 ;) 但万一其他人来找我,我的问题是一个包修改了我的.bashrc并导致它挂起。这会在 ssh 身份验证后发生(因此ssh -v实际上没有显示任何有用的东西)。补救的几个选项是:

  1. 以另一个用户身份登录并编辑文件.bashrc(或可能导致错误的其他来源)

  2. 使用不同的 shell 登录ssh -t user@host /bin/sh,然后清理有问题的文件

相关内容