升级到 13.04 后 SSH 拒绝连接

升级到 13.04 后 SSH 拒绝连接

将我的 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. AskUbuntu · 从 13.04 升级到 13.10 会破坏远程 SSH 访问吗?· 2013 年 11 月 10 日
  2. 超级用户 · 无法连接服务器。远程服务器已关闭连接 · 2013 年 8 月 10 日
  3. StackOverflow · SSH:远程服务器已关闭连接 · 2013 年 8 月 8 日
  4. StackOverflow · ssh 连接在“debug1: SSH2_MSG_KEXINIT sent”处停止 [关闭] · 2010 年 4 月 3 日

答案1

检查我通过 KVM-over-IP 控制台连接到的服务器上的日志文件/var/log/auth.log,我发现 SSH 守护进程忽略了服务器私钥文件ssh_host_rsa_key、、,同时抱怨它们的权限ssh_host_dsa_keyssh_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

相关内容