解决 ssh连接被重置问题

ssh连接到服务器的时候,出现问题 ssh read: Connection reset by peer
分析:这类错误,一般由网络错误导致,
起因:机器内被添加了无关路由表

# vim /etc/sysconfig/static-routes
any net 172.30.3.0/24 gw 172.30.3.1

错误的路由表:

0.0.0.0         172.30.3.1      0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
172.30.3.0      172.30.3.1      255.255.255.0   UG    0      0        0 eth0
172.30.3.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0

正常的路由应该为:

# route -n
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.30.3.1      0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
172.30.3.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0

解决方法:
删除无用路由表

# vim /etc/sysconfig/static-routes
any net 172.30.3.0/24 gw 172.30.3.1
systemctl restart network

类似解决方案:
https://cloud.tencent.com/document/product/213/37925#ProcessingSteps3

处理步骤
检查及调整访问策略设置
Linux 中可以通过 /etc/hosts.allow 和 /etc/hosts.deny 文件设置访问策略,两个文件分别对应允许和阻止的策略。例如,可以在 hosts.allow 文件中设置信任主机规则,在 hosts.deny 文件中拒绝所有其他主机。以 hosts.deny 为例,阻止策略配置如下:

in.sshd:ALL            # 阻止全部ssh连接
in.sshd:218.64.87.0/255.255.255.128    # 阻止218.64.87.0—-127的ssh
ALL:ALL                # 阻止所有TCP连接
使用 VNC 登录 Linux 实例 后,请检查 /etc/hosts.deny 文件及 /etc/hosts.allow 文件。并根据检查结果选择以下处理方式:

配置有误,请按需修改,更改即时生效。
未配置或配置无误,请进行下一步。
说明
若您未配置访问策略,则默认文件均为空,且允许所有连接。

检查 iptables 防火墙规则
检查是否 iptables 防火墙规则是否被修改,包括使用某些入侵防御软件,例如 Fail2ban 及 denyhost 等。执行以下命令,查看防火墙是否阻止过 SSH 连接。

sudo iptables -L --line-number
若 SSH 连接被阻止,请通过对应软件白名单等相关策略自行设置。
若 SSH 连接未被阻止,请进行下一步。
检查及调整 sshd 配置
执行以下命令,使用 VIM 编辑器进入 sshd_config 配置文件。
vim /etc/ssh/sshd_config
检查 MaxStartups 值是否需调整。sshd_config 配置文件中通过 MaxStartups 设置允许的最大连接数,如果短时间需建立较多连接,则需适当调整该值。
若需调整,则请参考以下步骤修改:
按 i 进入编辑模式,修改完成后按 Esc 退出编辑模式,并输入 :wq 保存修改。
说明
MaxStartups 10:30:100为默认配置,指定 SSH 守护进程未经身份验证的并发连接的最大数量。10:30:100表示从第10个连接开始,以30%的概率拒绝新的连接,直到连接数达到100。

执行以下命令,重启 sshd 服务。
service sshd restart
若无需调整,请进行下一步。
测试网络环境
检查是否使用了 内网 IP 进行登录。
是,请切换为 公网 IP 后再次进行尝试。
否,请进行下一步。
使用其他网络环境测试是否连接正常。
是,请重启实例后使用 VNC 登录实例。
否,请根据测试结果解决网络环境问题。
上一篇:kvm使用桥接的方法


下一篇:docker局域网独立IP外网访问配置