将我的 Ubuntu Server 从版本 13.04 升级到 13.10 ( do-release-upgrade
) 后,我无法再连接到服务器,SSH 立即关闭连接(发送 SSH2_MSG_KEXINIT 后)。在升级和重启服务器之前,它运行良好。
~$ ssh -v superuser@MYHOST
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
[...]
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.2p2 Ubuntu-6ubuntu0.1
debug1: match: OpenSSH_6.2p2 Ubuntu-6ubuntu0.1 pat OpenSSH*
debug1: SSH2_MSG_KEXINIT sent
Connection closed by 123.123.123.123
由于我已经对系统配置文件进行了版本控制,因此我可以看到/etc/hosts.allow
,/etc/hosts.deny
没有改变,也没有改变/etc/ssh/sshd_config
。
我查看了 AskUbuntu、StackExchange 和 SuperUser 上的一些类似问题,但没有一个能解决这个问题,所以我再次提交。
我检查了几个问题:
答案1
检查我通过 KVM-over-IP 控制台连接到的服务器上的日志文件/var/log/auth.log
,我发现 SSH 守护进程忽略了服务器私钥文件ssh_host_rsa_key
、、,同时抱怨它们的权限ssh_host_dsa_key
:ssh_host_ecdsa_key
# tail -f /var/log/auth.log
[…]
Feb 21 13:49:18 MYHOST sshd[14646]: error: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Feb 21 13:49:18 MYHOST sshd[14646]: error: @ WARNING: UNPROTECTED PRIVATE KEY FILE! @
Feb 21 13:49:18 MYHOST sshd[14646]: error: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Feb 21 13:49:18 MYHOST sshd[14646]: error: Permissions 0644 for '/etc/ssh/ssh_host_rsa_key' are too open.
Feb 21 13:49:18 MYHOST sshd[14646]: error: It is required that your private key files are NOT accessible by others.
Feb 21 13:49:18 MYHOST sshd[14646]: error: This private key will be ignored.
Feb 21 13:49:18 MYHOST sshd[14646]: error: bad permissions: ignore key: /etc/ssh/ssh_host_rsa_key
Feb 21 13:49:18 MYHOST sshd[14646]: error: Could not load host key: /etc/ssh/ssh_host_rsa_key
[…]
我限制了权限并重新启动了 SSH 守护程序,这解决了我的问题:
# cd /etc/ssh
# chmod go-r *
# initctl restart ssh
答案2
对我来说,这是因为使用 PPTP vpn 时 MTU 设置不正确。这为我解决了这个问题:
sudo ip link set ppp0 mtu 1400