MacBook Air下SSH连接服务器报错Connection closed by remote host求助
本地端排查
检查SSH密钥权限与存在性
打开终端执行以下命令,确认密钥文件权限符合要求:ls -l ~/.ssh/私钥(如
id_rsa)权限应为-rw-------(600),公钥(如id_rsa.pub)应为-rw-r--r--(644),.ssh目录权限应为drwx------(700)。权限不符的话用chmod修正:chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub重新加载密钥到SSH代理
执行命令刷新代理中的密钥:ssh-add -k ~/.ssh/id_rsa若提示"Could not open a connection to your authentication agent",先启动代理:
eval "$(ssh-agent -s)"再重新执行
ssh-add命令。直接指定密钥文件连接
跳过默认密钥匹配,手动指定密钥文件测试连接:ssh -i ~/.ssh/id_rsa lab@xxx.xxx.xxx.xxx清除本地SSH主机缓存
若存在旧主机密钥缓存冲突,执行以下命令清除:ssh-keygen -R xxx.xxx.xxx.xxx
服务器端排查(需通过云控制台VNC等其他方式登录)
检查SSH服务状态
确认sshd服务是否正常运行:systemctl status sshd若服务未启动,执行
systemctl start sshd重启;若启动失败,查看日志journalctl -u sshd排查原因。检查authorized_keys文件
确认服务器端你的用户目录下.ssh/authorized_keys包含本地公钥内容,且权限正确:ls -l ~/.ssh/authorized_keys文件权限需为
-rw-------(600),目录权限为drwx------(700),否则SSH会拒绝公钥认证。检查sshd配置文件
打开/etc/ssh/sshd_config,确认以下关键配置:PubkeyAuthentication yes(开启公钥认证)- 若
PasswordAuthentication设为no,需确保公钥已正确配置 - 若存在
AllowUsers配置,需包含你的用户名lab
修改后重启sshd服务:systemctl restart sshd
检查防火墙与安全组
确认服务器22端口未被防火墙拦截,若使用fail2ban等防暴力破解工具,查看是否你的IP被拉黑:# 查看fail2ban封禁列表 fail2ban-client status sshd # 若被封禁,解除IP fail2ban-client set sshd unbanip 你的本地IP同时检查云服务器安全组规则,确保22端口对你的IP开放。
其他排查
- 切换网络测试:比如使用手机热点连接,排除本地网络运营商/防火墙屏蔽22端口的可能。
- 检查VS Code远程配置:确认VS Code的Remote-SSH插件配置中,服务器地址、密钥路径与手动SSH连接的参数一致。
内容的提问来源于stack exchange,提问作者rk_key

