SSH 在本地可用,但无法远程使用

SSH 在本地可用,但无法远程使用

最近我的 CentOS 机器出现了硬件问题。更换电源、内存、主板和 CPU 后,我认为硬件问题已经解决。

但是,我认为我的网络配置问题导致 SSH 远程连接失败。

我尝试使用我原来的帐户和密钥进行常规 ssh 并且在服务器预期之后收到连接超时:debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP

从服务器本身使用新帐户:

$ ssh -v -o PubkeyAuthentication=no chris@localhost
Last login: ... 
[chris@dev ~]$ 

从 LAN 上的远程连接尝试远程 SSH:

chris::Internets|10 ~ $ ssh -v -o PubkeyAuthentication=no chris@pug
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/chris/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *
debug1: Connecting to pug [192.168.1.175] port 22.
debug1: Connection established.
debug1: identity file /Users/chris/.ssh/id_rsa type 1
debug1: identity file /Users/chris/.ssh/id_rsa-cert type -1
debug1: identity file /Users/chris/.ssh/id_dsa type -1
debug1: identity file /Users/chris/.ssh/id_dsa-cert type -1
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_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5*
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
Read from socket failed: Operation timed out

我已经确认我可以:

  • 从服务器 ping 局域网和互联网上的远程盒子
  • 不能从服务器获取网页
  • 从局域网 ping 服务器
  • 可以从局域网或远程连接访问 ssh 端口(仍然收到 ssh 错误)

我确实看到过一篇关于 DNS 解析问题导致问题的帖子,我UseDNS No应该完全避免 DNS 并且不会导致问题。

当我正在绞尽脑汁想还有什么要寻找的时候,有什么想法吗?

编辑:

/var/log/secure 包含以下内容:

Nov 29 11:19:45 dev sshd[5978]: fatal: Read from socket failed: Connection reset by peer

另外,我检查了一下,SSH 正在 22 上监听,这是应该的。

[root@dev ~]# lsof -i TCP:22 | grep LISTEN 
sshd 5424 root 3u IPv4 39030 0t0 TCP *:ssh (LISTEN)
sshd 5424 root 3u IPv6 39032 0t0 TCP *:ssh (LISTEN)

为了避免出现复杂情况,我刷新了 iptables:

[root@dev ~]# iptables -L -n 
Chain INPUT (policy ACCEPT)
target prot opt source destination 

Chain FORWARD (policy ACCEPT)
target prot opt source destination 

Chain OUTPUT (policy ACCEPT)
target prot opt source destination 

答案1

我怀疑网络配置发生了变化,因为您的 MAC 地址已更改。如果您在现有 Linux 安装上更换主板,该文件/etc/udev/rules.d/70-persistent-net.rules将为您的设备创建新条目并为其赋予新名称。因此,如果您之前有 eth0 和 eth1,那么现在您可能有 eth2 和 eth3。更改网络适配器后,您需要手动更新该文件。

此外,您能显示您的防火墙规则(iptables -L -n)吗?

答案2

SSH 主机密钥是否因重新配置而发生变化?如果是这样,那么远程端的 known_hosts 文件可能与新主机密钥不同步,因此拒绝连接。

相关内容