You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VirtualBox中Ubuntu虚拟机SSH连接异常:尝试连接目标VM却始终停留在本地VM

VirtualBox中Ubuntu虚拟机SSH连接异常:尝试连接目标VM却始终停留在本地

嗨,我来帮你排查这个奇怪的SSH问题!这种情况我之前遇到过好几次,大概率是SSH配置或者VM网络/主机名映射出了问题,咱们一步步来分析解决:

1. 先检查本地VM的主机名映射(最常见的坑)

你是不是用ssh username@myserver01这样的命令发起连接的?如果是,先看看myserver02的/etc/hosts文件有没有把myserver01错误映射到本地IP:

  • 在myserver02上运行:cat /etc/hosts
  • 如果看到类似127.0.0.1 myserver01或者[myserver02的IP] myserver01的行,直接删掉这一行,或者把IP改成myserver01的正确实际IP。

2. 检查SSH别名配置有没有出错

有时候我们会在~/.ssh/config里配置主机别名,不小心写错就会连错机器:

  • 运行命令查看配置:cat ~/.ssh/config
  • 如果发现针对myserver01的配置块里,HostName写的是127.0.0.1或者myserver02的IP,把它改成myserver01的实际IP就行。比如:
    Host myserver01
        HostName 192.168.56.101  # 这里改成myserver01的真实IP
        User yourusername
    

3. 用IP直接连接,定位问题根源

跳过主机名,直接用myserver01的实际IP发起SSH连接试试:

ssh username@[myserver01的实际IP]
  • 如果用IP能正常连到myserver01,那问题就出在主机名解析上,把前面的hosts或SSH配置改对就行;
  • 如果用IP还是连到本地,那就要查VirtualBox的网络和VM服务配置了:
    • 确认两个VM的网络模式在同一网段:比如都是NAT模式,或者都是桥接模式,且IP在同一个子网;
    • 检查myserver01的SSH服务是否正常:在myserver01上运行systemctl status sshd,确保服务是active (running)状态;
    • 检查myserver01的防火墙是否拦截SSH:运行ufw status,如果没有22/tcp允许规则,执行sudo ufw allow ssh打开。

4. 排查克隆VM导致的UUID/密钥冲突

如果你的两个VM是通过克隆生成的,很可能会出现UUID或SSH主机密钥重复的问题,导致系统识别混乱:

  • 检查VM的UUID是否重复:在VirtualBox管理界面选中VM,右键→设置→通用→基本查看UUID;或者用命令行:
    VBoxManage showvminfo myserver01 | grep UUID
    VBoxManage showvminfo myserver02 | grep UUID
    
    如果UUID相同,在VirtualBox里选中myserver01,右键→设置→网络→高级→点击“刷新MAC地址”,UUID会自动更新;
  • 重新生成myserver01的SSH主机密钥:
    sudo rm /etc/ssh/ssh_host_*
    sudo dpkg-reconfigure openssh-server
    sudo systemctl restart sshd
    

最后,用IP连接成功后,在远程会话里运行hostname和ip addr show确认是不是myserver01的信息,没问题的话再修复主机名映射,之后用ssh username@myserver01就能正常连接啦!

备注:内容来源于stack exchange,提问作者변미담

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:09:51