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 登錄實例。
否,請根據測試結果解決網絡環境問題。