本文介紹了使用SSH用戶端登入Linux執行個體提示“ssh_exchange_identification: read: Connection reset by peer”錯誤的解決方案。
問題描述
通過SSH用戶端登入Linux執行個體時,確認使用者名稱和密碼正確的情況下,遇到了如下錯誤資訊。
ssh_exchange_identification: read: Connection reset by peer.
sshd[11949]: refused connect from 192.168.0.0 (192.168.0.0).問題原因
出現該問題可能有以下原因:
ECS執行個體內的TCP Wrapper檔案配置不正確:TCP Wrapper是Linux系統中用於控制網路服務存取權限的一個工具。它通過檢查
/etc/hosts.allow和/etc/hosts.deny這兩個檔案來決定是否允許某個IP或主機進行TCP串連。如果/etc/hosts.allow或/etc/hosts.deny檔案配置錯誤,會導致SSH串連異常。您可以重新設定/etc/hosts.allow或/etc/hosts.deny檔案解決該問題,具體操作,請參見方法一:編輯TCP Wrapper檔案。ECS執行個體內liblz4.so.1檔案丟失:liblz4.so.1檔案是liblz4.so.1.7.5檔案的軟連結,該檔案丟失會導致SSH串連異常。更多詳情,請參見方法二:建立liblz4.so.1軟連結。
本網串連異常:請檢查本網,具體操作,請參見方法三:檢查本網。
解決方案
方法一:編輯TCP Wrapper檔案
參考以下步驟,通過修改設定檔動態設定存取原則,修改後無需重啟伺服器使配置生效。 本文以修改/etc/hosts.deny為例進行說明。
通過VNC方式登入ECS執行個體。
具體操作,請參見通過密碼認證登入Linux執行個體。
執行如下命令,查看
/etc/hosts.allow或/etc/hosts.deny檔案中,是否包含類似all:all:deny或sshd:IP地址:deny配置。cat /etc/hosts.deny如果不存在
all:all:deny或sshd:IP地址:deny配置,說明不是TCP Wrapper導致,請執行其他方案進行排查。如果存在
all:all:deny或sshd:IP地址:deny配置,請繼續執行下一步。
修改
/etc/hosts.deny檔案。開啟
/etc/hosts.deny檔案。在
all:all:deny或sshd:IP地址:deny前加#號,注釋掉該配置。# all:all:deny # sshd:IP地址:deny
方法二:建立liblz4.so.1軟連結
通過VNC方式登入ECS執行個體。
具體操作,請參見通過密碼認證登入Linux執行個體。
執行如下命令,尋找liblz4.so.1.7.5檔案。
find / -name "liblz4*"如果不存在liblz4.so.1.7.5檔案,將其他正常ECS執行個體中的liblz4.so.1.7.5檔案拷貝到該ECS執行個體
/usr/lib64/中。執行以下命令,建立軟連結。
ln -s /usr/lib64/liblz4.so.1.7.5 /usr/lib64/liblz4.so.1
方法三:檢查本網
請使用其他網路環境測試網路是否串連正常,例如手機4G網路,查看是否可以正常登入。
若可以正常登入,說明是本網問題,請自行排查。