VSCode Remote-SSH 完整使用教程(刚好适合你PVE虚拟机)

Remote-SSH:让VSCode直接在远程Linux服务器/PVE虚拟机里写代码、看文件、开终端,文件全部在远端,本地只是编辑器界面。

一、前置条件

  1. 本地:安装 VS Code;Windows 10/11 需要开启【OpenSSH客户端】(设置 → 应用 → 可选功能)
  2. 远端(你的PVE虚拟机):
    • 系统:Linux(Ubuntu/Debian/CentOS)
    • 安装 openssh-server 并启动
      # Debian/Ubuntu
      apt update && apt install openssh-server
      systemctl enable --now ssh
    • 防火墙放行22端口(或者你自定义的ssh端口)
    • 知道:IP、ssh端口、用户名

二、安装插件

  1. VSCode左侧扩展商店,搜索:Remote - SSH(作者 Microsoft),安装
  2. 快捷键 F1 调出命令面板,输入 Remote-SSH 就能看到所有相关命令

三、两种连接方式

方式A:临时快速连接(单次)

  1. F1 → Remote-SSH: Connect to Host...
  2. 输入格式:
    root@192.168.1.100
    # 非22端口:
    root@192.168.1.100 -p 2222
  3. 回车,第一次连接输入密码,等待VSCode自动在远端安装vscode服务。

    右下角会弹出进度框,安装完成后自动新开窗口,就是远程环境。

方式B:配置 config 文件(推荐,保存多个服务器,密钥免密)

  1. F1 → Remote-SSH: Connect to Host... → Add New SSH Host
  2. 会提示选择配置文件路径,一般选 ~/.ssh/config(Windows:C:\Users\你的用户名\.ssh\config)
  3. 编辑config,示例:
    Host pve-vm
    HostName 192.168.1.100
    User root
    Port 22
    IdentityFile C:\Users\XXX\.ssh\id_ed25519
  • Host pve-vm:别名,以后直接选这个名字连接,不用输IP
  • IdentityFile:私钥路径,配置后免密码登录

配置完后,左侧远程资源管理器会出现 pve-vm,点一下就能连接。

四、配置SSH密钥免密登录(强烈建议,不用反复输密码)

在本地电脑终端执行:

ssh-keygen -t ed25519
# 一路回车,可设置密钥密码(可选)

把公钥推送到远端虚拟机:

ssh-copy-id root@192.168.1.100
# 非22端口:ssh-copy-id -p 2222 root@192.168.1.100

之后再连接就不用输入服务器密码。

五、连接成功后操作

  1. 左下角绿色状态栏:SSH: pve-vm,代表当前处于远程环境
  2. 打开文件夹:文件 → 打开文件夹,输入远端路径 /root 或者 /opt/project
  3. 终端:Ctrl+ ` 直接打开远端shell(就是虚拟机里面的bash)
  4. 插件:扩展面板里,本地插件不会自动跑到服务器,需要在远程分类下点【安装到SSH】

六、常见坑(你PVE环境大概率会遇到)

  1. 连接超时:虚拟机防火墙没开22端口;PVE虚拟机网卡不通;sshd没启动
  2. 远端安装VSCode Server失败:虚拟机网络无法访问github(国内很常见)
    • 解决:手动下载vscode-server,传到虚拟机对应目录
  3. 权限报错:.ssh目录权限必须严格,远端执行:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
  4. 密码正确但拒绝登录:sshd配置禁止root密码登录
    修改 /etc/ssh/sshd_config
    PermitRootLogin yes
    PasswordAuthentication yes
    重启ssh:systemctl restart ssh

七、断开连接

直接关闭VSCode远程窗口即可;或者左下角绿色SSH按钮 → Close Remote Connection。

小提示

  • 你前面PVE那个AES报错的虚拟机,只要虚拟机ssh服务正常,完全可以用Remote-SSH连进去写代码,CPU缺少AES不影响SSH。
  • 不要混淆:Remote-SSH是连接虚拟机内的Linux,不是直接连PVE宿主机。
作者:月影鹏鹏  创建时间:2026-10-04 01:41
最后编辑:月影鹏鹏  更新时间:2026-10-04 01:41