连接虚拟机时遇错误:key_exchange_identification: Connection closed by Remote host
key_exchange_identification: Connection closed by Remote host错误的方案 这个错误无需直接重装系统,按以下步骤逐一排查:
验证虚拟机网络与运行状态
在本地主机执行ping 虚拟机IP检查网络连通性。若丢包或完全不通,先确认虚拟机是否正常运行(通过宿主机的虚拟机管理界面查看),排查宿主机网络配置是否变动,或虚拟机是否因CPU/内存占满导致无响应。检查SSH服务状态
通过虚拟机控制台直接登录系统,执行systemctl status sshd(systemd系统)或service ssh status(sysvinit系统)确认SSH服务是否正常运行。若服务未启动,执行systemctl restart sshd重启后重试连接。排查SSH配置文件问题
先备份配置文件:cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak,再恢复为系统默认配置(可参考同版本系统的默认模板),重启SSH服务后尝试连接。避免因KeyExchange算法设置不当、登录方式限制错误等配置问题导致连接中断。检查防火墙规则
确认虚拟机本地防火墙未拦截SSH端口(默认22):- 对于ufw防火墙:执行
ufw allow ssh && ufw reload - 对于iptables:执行
iptables -A INPUT -p tcp --dport 22 -j ACCEPT,保存规则后重启防火墙。
同时检查宿主机防火墙是否限制了虚拟机的SSH流量。
- 对于ufw防火墙:执行
清理系统资源
登录虚拟机控制台,执行top或htop查看资源使用情况:- 若磁盘已满,清理日志、临时文件或无用数据;
- 若内存/CPU占满,终止占用资源过高的进程,或调整虚拟机的资源分配额度。
修复SSH密钥权限
检查虚拟机上~/.ssh/authorized_keys文件权限是否为600,~/.ssh目录权限是否为700——权限错误会导致SSH验证失败。若本地密钥损坏,可重新生成:ssh-keygen -t ed25519,再将公钥重新复制到虚拟机对应文件中。
只有当以上所有步骤均无法解决问题,且确认系统核心文件损坏时,再考虑重装操作系统。
内容的提问来源于stack exchange,提问作者Krishnapal dubey

