虚拟机下载安装SSH服务后,只要服务已启动、虚拟机和宿主机网络互通、22端口没被防火墙拦截,在宿主机终端输入 ssh 用户名@虚拟机IP 就能连上,连不上按“服务→网络→防火墙→端口配置”顺序排查。
虚拟机下载ssh后怎么连接?先确认三个前提
很多新手以为装了SSH就能直接连,结果卡在连接超时或拒绝访问,动手连接前,先把下面三个前提查完。
确认SSH服务端已经装好并启动
虚拟机里执行 ssh -V 只代表装了客户端,不代表服务端在运行,判断服务端状态用:
- Ubuntu/Debian 执行
systemctl status ssh - CentOS/Rocky/AlmaLinux 执行
systemctl status sshd
没装服务端时:
- Debian 系:
sudo apt install openssh-server -y - 红帽系:
sudo dnf install openssh-server -y
装完后启动并设置开机自启:
sudo systemctl start sshdsudo systemctl enable sshd
看到 active (running) 才算服务正常。
确认虚拟机IP和宿主机网络互通
虚拟机网络模式不同,连接路径不同:
- NAT模式:宿主机可以连,外网机器一般不能直接连,适合本地ssh连接。
- 桥接模式:虚拟机像局域网里一台独立设备,路由器分配同网段IP,宿主机和其他设备都能连。
- Host-Only模式:仅宿主机和虚拟机互通,适合隔离测试。
在虚拟机里执行 ip addr show 或 ip a,找到 ens33/eth0 下的 inet 地址,192.168.30.128,宿主机执行 ping 虚拟机IP 能通再继续。
确认22端口没被防火墙拦截
虚拟机内部防火墙:
- Ubuntu:
sudo ufw allow 22/tcp - CentOS/Rocky:
sudo firewall-cmd --permanent --add-service=ssh,再执行sudo firewall-cmd --reload
宿主机安全软件也可能拦截出站连接,本地连接一般不受影响。
本地电脑连接vmware虚拟机ssh的完整操作步骤
Windows宿主机用PowerShell连接
- 第一步:打开PowerShell或CMD窗口。
- 第二步:输入
ssh 用户名@虚拟机IP,ssh root@192.168.30.128。 - 第三步:首次连接会提示指纹确认,输入 yes 回车。
- 第四步:输入虚拟机用户密码,密码输入时不显示字符,输完直接回车。
- 第五步:出现命令行提示符,表示已经进入虚拟机。
如果使用密钥登录,命令为:
ssh -i C:Users你的用户名.sshid_rsa 用户名@虚拟机IP
macOS/Linux宿主机用终端连接
macOS和多数Linux桌面发行版自带ssh客户端,操作命令基本一致:
- 打开终端。
- 输入
ssh 用户名@虚拟机IP。 - 若提示
Permission denied,先确认用户名和密码是否正确。 - 再检查虚拟机
/etc/ssh/sshd_config中PasswordAuthentication yes是否打开。 - 改过配置后执行
sudo systemctl restart sshd。
图形工具连接虚拟机ssh
新手不习惯命令行时,可以用图形工具:
- FinalShell:国产免费,带文件管理,适合国内服务器虚拟机ssh连接。
- MobaXterm:功能齐全,Windows环境推荐使用。
- Xshell:老牌工具,个人免费版申请后可用。
连接参数只填三项:主机IP、用户名、端口22,填完点连接,输入密码即可。
虚拟机ssh和本地终端区别,别再用错工具
运行位置不同
- 虚拟机ssh:操作的是远程虚拟机里的Shell,命令运行在虚拟机操作系统里。
- 本地终端:操作的是当前电脑的Shell,命令运行在本地操作系统里。
很多人在虚拟机窗口里直接敲命令,这属于本地终端操作虚拟机,不是ssh连接,SSH的价值在于不打开虚拟机图形窗口,从宿主机直接管理。
文件传输方式不同
- 虚拟机ssh:可以用
scp、rsync传输文件,也可用FinalShell拖拽。 - 本地终端:宿主机和虚拟机之间常靠共享文件夹、拖拽或U盘拷贝。
使用场景不同
- 需要远程管理、自动化脚本、云服务器运维时,用ssh。
- 只在虚拟机里做桌面操作、临时改配置时,直接打开虚拟机窗口也行。
虚拟机ssh连接不上怎么回事?按顺序排查
第一步:IP是否变化
虚拟机重启后DHCP地址可能变化,重新在虚拟机里执行 ip a,用新IP连接,为避免IP频繁变化:
- 给虚拟机设置静态IP。
- 在VMware NAT设置里绑定MAC和IP对应关系。
第二步:sshd服务是否存活
虚拟机里执行:
sudo systemctl status sshd
看到 active (running) 才算正常,如果是 inactive 或 failed,执行:
sudo systemctl restart sshdsudo systemctl enable sshd
第三步:防火墙和安全组
本地虚拟机主要看系统防火墙,云服务器还要看控制台安全组:
- 国内云服务器虚拟机ssh连接遇到拒绝,多数是安全组没有放行22端口。
- 登录云控制台,找到安全组规则,入方向添加 TCP 22,源地址填写 0.0.0.0/0 或指定本机公网IP。
- 修改后不需要重启服务器,规则立即生效。
第四步:sshd配置文件
检查 /etc/ssh/sshd_config 里的关键项:
Port 22是否被改成了其他端口。PermitRootLogin是否禁止root登录,新手可暂时设为 yes。PasswordAuthentication是否为 yes。
改完执行 sudo systemctl restart sshd 让配置生效。
国内云服务器虚拟机ssh连接的地域注意事项
上海、北京等地域安全组规则要单独放行
云厂商按地域隔离资源,上海地域的虚拟机安全组规则不会自动同步到北京地域,多地部署时,每个地域都要检查入方向22端口:
- 轻量应用服务器在防火墙页面放行22端口。
- 标准云服务器在安全组页面添加规则。
- 公司网络有出口防火墙时,部分单位会封禁22出站,可换用443端口或申请网络策略。
跨境连接本地虚拟机ssh的延迟与丢包
如果宿主机在海外,连接国内云服务器虚拟机ssh可能有较大延迟,这属于网络链路问题,不是配置问题,行业内通常建议就近选择地域:南方用户选广州、深圳,北方用户选北京,华东用户选上海,地域越近,ssh敲命令时回显越跟手。
虚拟机ssh连接的本质就是“服务端在虚拟机里,客户端在宿主机上”,把服务、IP、端口三个变量控制住,多数新手问题都能在十分钟内解决,剩下的就是换工具、换网络、换地域排查。
Q&A
虚拟机ssh连接需要多少钱?
如果用的是本地VMware、VirtualBox虚拟机,SSH完全免费,OpenSSH开源协议允许免费使用,如果使用云服务器虚拟机,费用按云服务器规格和带宽计,不单独收ssh费用,国内轻量应用服务器最低配置每月几十元,新用户和活动价可能更低,只做ssh学习用,本地虚拟机零成本。
虚拟机ssh和宝塔面板的区别是什么?
SSH是命令行远程管理协议,直接操作Linux系统,宝塔面板是图形化服务器管理软件,通过网页管理网站、数据库、文件,宝塔面板依赖Web服务,SSH是更底层的连接方式,新手用宝塔面板建站更直观,但排查系统级问题时仍需要用SSH登录,两者不冲突,可以同时使用。
虚拟机下载ssh后连接速度慢怎么办?
先区分是网络延迟还是ssh服务响应慢:
- 云服务器虚拟机:换同地域或就近地域,检查带宽是否被占满。
- 本地虚拟机:确认网络模式是否选NAT或桥接,避免Host-Only下代理转发导致的慢。
- 关闭DNS反向解析:在
/etc/ssh/sshd_config中设置UseDNS no,重启sshd。 - 用
ssh -v查看卡在哪一步,如果卡在密钥交换,检查本机到虚拟机的MTU或防火墙策略。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/639278.html





