无法通过SSH将Windows本地VS Code连接至VirtualBox Debian虚拟机
解决VirtualBox Debian虚拟机SSH连接被拒&IP确认问题
一、确定Debian虚拟机的正确IP
- VirtualBox网络模式说明
- NAT模式(默认分配10.0.2.15):该模式下虚拟机可主动访问外部,但Windows主机无法直接通过此IP访问虚拟机,需额外配置端口转发。
- 桥接模式:虚拟机会获取与主机同网段的IP,主机可直接访问,是SSH连接最便捷的模式。
- 获取真实IP的方法
直接在Debian虚拟机终端执行命令:
找到对应网卡(如ip aenp0s3),查看inet字段后的IP地址,此为虚拟机可被主机访问的真实IP。不要使用Windows的ipconfig结果,那是主机自身IP,与虚拟机无关。
二、解决SSH连接被拒问题
1. 确认OpenSSH服务状态
在Debian终端执行:
sudo systemctl status sshd
若显示active (running)则服务正常;若未运行,执行启动并设置开机自启:
sudo systemctl start sshd sudo systemctl enable sshd
2. 配置防火墙允许SSH端口
若Debian开启了防火墙(如ufw),需放行SSH默认端口22:
sudo ufw allow ssh sudo ufw reload
3. NAT模式下的端口转发配置(若不切换桥接模式)
打开VirtualBox,选中Debian虚拟机 → 「设置」→ 「网络」→ 「高级」→ 「端口转发」,添加规则:
- 协议:TCP
- 主机端口:自定义(如2222)
- 子系统端口:22
- 主机IP:留空或填
127.0.0.1 - 子系统IP:虚拟机NAT IP(如10.0.2.15)
之后主机连接时需指定端口,例如scp命令:
scp -P 2222 %USERPROFILE%/.ssh/linux_rsa.pub 用户名@127.0.0.1:~/.ssh/authorized_keys
4. 桥接模式下的公钥复制步骤
假设查到的Debian IP为192.168.1.100,用户名为debian,执行:
scp %USERPROFILE%/.ssh/linux_rsa.pub debian@192.168.1.100:~/.ssh/authorized_keys
若提示权限问题,先在Debian终端创建并配置.ssh目录权限:
mkdir -p ~/.ssh chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
三、VS Code SSH连接配置
复制公钥完成后,在VS Code中操作:
- 按
F1,输入Remote-SSH: Connect to Host→ 选择「Add New SSH Host」 - 输入连接命令:桥接模式填
ssh 用户名@虚拟机IP,NAT端口转发模式填ssh 用户名@127.0.0.1 -p 自定义端口 - 保存配置后即可发起连接
内容的提问来源于stack exchange,提问作者MARIO_7506010
相关产品推荐
相关产品推荐

