服务器端没有其他更改。然而,在我最近的MacOS更新后,我得到kex_exchange_identification: read: Connection reset by peer
搜索了一遍又一遍,无法修复它。请帮助。谢谢。
ssh xxxx@xx.xx.x.xx -Tv
OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug1: Connecting to xx.xx.x.xx [xx.xx.x.xx] port 22.
debug1: Connection established.
debug1: identity file /Users/chaowu/.ssh/id_rsa type 0
debug1: identity file /Users/chaowu/.ssh/id_rsa-cert type -1
debug1: identity file /Users/chaowu/.ssh/id_dsa type -1
debug1: identity file /Users/chaowu/.ssh/id_dsa-cert type -1
debug1: identity file /Users/chaowu/.ssh/id_ecdsa type -1
debug1: identity file /Users/chaowu/.ssh/id_ecdsa-cert type -1
debug1: identity file /Users/chaowu/.ssh/id_ed25519 type -1
debug1: identity file /Users/chaowu/.ssh/id_ed25519-cert type -1
debug1: identity file /Users/chaowu/.ssh/id_xmss type -1
debug1: identity file /Users/chaowu/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.1
kex_exchange_identification: read: Connection reset by peer
我发现macOS Catalina上出现此错误的根本原因是您SSH连接的计算机。在卡特琳娜升级和可能的补丁中有一些bug。确保你检查了你试图用SSH连接的Mac系统中/etc/SSH中OpenSSH生成的公钥/私钥文件的权限。这些密钥由SSH守护进程使用。
由于OpenSSH是跨平台的,因此同样适用于运行SSHd的任何操作系统。这些文件必须具有适当的权限。
/etc/ssh是默认路径,但如果您在Windows或其他操作系统上,它可能会有所不同。但是对于大多数Unix/Linux/macOS系统,它应该是/etc/ssh。
sudo chmod 600 /etc/ssh/*_key
sudo chmod 644 /etc/ssh/*.pub
您还应该验证SSH客户端对~/具有正确的权限。SSH和公钥/私钥、config、authorized_keys等。虽然如果这些是错误的,你会被告知,马上有一个权限问题。但是,当SSH守护进程的密钥权限错误时,您将在日志中收到错误。不包括用于SSH免密码登录的公钥。
如果不是DNS或证书,那么它总是权限。