使用ssh连接到我的一台服务器需要20秒钟以上的时间才能启动。
这与LAN或WAN条件无关,因为与其自身的连接相同(ssh localhost)。最终建立连接后,与服务器进行交互非常快速。
使用-vvv表示在说了“承诺:网络”后,连接被阻塞。至此,身份验证(此处使用密钥)已经完成,如此处所示:
...
debug1: Authentication succeeded (publickey).
Authenticated to myserver.mydomain.com ([xx.xx.xx.xx]:22).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
(...在这里停留15到25秒...)
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug2: client_session2_setup: id 0
...
服务器是Ubuntu 16.04。过去,我已经在另一台服务器(Ubuntu 12.04)上发生过这种情况,神经过敏找到了解决方案,一段时间后问题消失了……
sshd_config是Ubuntu提供的默认设置。
到目前为止,我已经尝试过:
- 在ssh命令中使用-o GSSAPIAuthentication = no
- 使用密码代替密钥
- 在sshd_config中使用UsePrivilegeSeparation no代替yes
pam_systemd(sshd:session): Failed to create session: Connection timed out
是答案中提到的内容,则可能是github.com/systemd/systemd/issues/2925