VScode连接虚拟机
2025-09-17
次访问
通过Remote-SSH插件连接虚拟机
主机环境:
- 操作系统:WIN10专业版22H2
- vscode版本:vscode2025 | 1.102.2
- 虚拟机软件:VirtualBox
虚拟机环境:
- 系统版本:ubuntu20.04
- 内核版本:5.15.0
- 架构:x86_64
如果不一样应该也没关系
1 虚拟机安装 SSH 服务
1 | sudo apt update |
安装完成之后需要检查看是否启动ssh服务成功
1 | ps -e | grep ssh |
ssh-agent表示ssh-client启动,sshd表示ssh-server启动了,这两个是必须有的
2 配置VirtualBox
为了让vscode能连接上虚拟机,必须设置端口转发规则
或者修改连接方式为桥接网卡,据说这样可以直接将虚拟机和主机置于同一个局域网,但我没有试过
3 主机VScode安装Remote-SSH
4 查看虚拟机ip地址
使用 ip a 查看
127.0.0.1 就是虚拟机的ip地址了,vscode使用这个来连接到虚拟机
5 vscode连接到虚拟机
输入enter确认后就是确定操作系统以及输入密码了
如果使用NAT模式,则输入 ssh -p 22 root@ip地址
6 设置免密登录
- 设置虚拟机的ssh配置文件允许免密登录
1 | # 使用vim /etc/ssh/sshd_config 设置下面两条语句 |
在主机生成SSH密钥
- 使用 git bash 输入
ssh-keygen -t rsa -b 4096 -C "vscode-ssh"
然后一路回车 - 这时
C:\Users\Administrator\.ssh
下面会有两个文件
- 说明密钥生成成功
- 使用 git bash 输入
在虚拟机上生成SSH密钥
- 重启一下 ssh
1 | sudo systemctl restart ssh |
- 在主机的 git bash 中使用
ssh-copy-id
上传公钥
1 | ssh-copy-id -i ~/.ssh/id_rsa.pub -p 子系统端口号 name@ip |
这里的name还有ip要和vscode的ssh config文件中的一致
这样虚拟机中就有了主机的公钥信息了
- 在vscode中设置本机的公钥信息
- 下次使用vscode远程连接就能直接登录了
7 可能出现的问题
case 1:输入的密码是正确的密码但是重复提示输入密码
这种情况是因为虚拟机中的ssh配置文件没有设置允许密码登录
打开ssh配置文件
1
sudo vim /etc/ssh/sshd_config
确保以下两行没有被注释(前面不要有
#
)1
2PermitRootLogin yes # 如果你用 root 登录
PasswordAuthentication yes # 允许密码登录如果上面两行没有找到或者只找到一行,自己添加在里面也是可以的
添加完成保存并关闭vim,然后重启 SSH
1
sudo systemctl restart ssh