能连上,前提是远程服务器开了 ssh 服务、本地装了 remote-ssh 插件、网络通、密钥或密码正确——缺一不可;需依次确认:远程 ssh 服务 active(running)、本地 openssh client 已启用、vs code 已安装 remote-ssh 插件、~/.ssh/config 配置无误(host/hostname/user/identityfile 四项齐全且路径正确)、公钥已正确部署至远程 ~/.ssh/authorized_keys。

能连上,前提是远程服务器开了 SSH 服务、本地装了 Remote-SSH 插件、网络通、密钥或密码正确——缺一不可。别急着点连接,先确认这四件事。
远程服务器必须运行 SSH 服务(sshd)
Ubuntu/Debian 上执行:sudo systemctl status ssh,看到 active (running) 才算真正跑起来了。如果提示 Unit ssh.service could not be found,说明根本没装:sudo apt install openssh-server。CentOS/RHEL 换成 sudo yum install -y openssh-server 或 sudo dnf install -y openssh-server。装完记得 sudo systemctl enable --now ssh,否则重启后服务就没了。
Windows 本地作为 SSH 客户端不用额外装服务,但得确认 OpenSSH Client 已启用:PowerShell 管理员模式下运行 Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*',状态是 Installed 才行;没装就补:Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0。
Remote-SSH 插件配置的 ~/.ssh/config 必须写对
别信“填完主机名就能连”的说法。VS Code 的 Remote-SSH 完全依赖系统级的 SSH 配置文件,路径固定为 ~/.ssh/config(Windows 是 %USERPROFILE%\.ssh\config)。常见错误包括:
- Host 别名含空格或特殊字符(如
my server),应改用下划线(my_server) - 忘记写
HostName(不是Host),只写了 IP 或域名,VS Code 会报Could not resolve hostname -
IdentityFile路径含中文或空格却没加引号,Windows 下尤其容易出错,比如C:\Users\张三\.ssh\id_rsa必须写成"C:\Users\张三\.ssh\id_rsa" - 漏掉
User字段,VS Code 默认用当前登录用户名,但远程服务器上很可能不存在该用户,直接拒绝连接
一个最小可用配置示例:
Host myserver
HostName 192.168.1.100
User ubuntu
IdentityFile ~/.ssh/id_rsa
连接时卡在“Establishing SSH connection…” 或报 Permission denied (publickey)
这不是 VS Code 的问题,是 SSH 层认证失败。优先排查顺序:
- 用终端手动试:
ssh -i ~/.ssh/id_rsa ubuntu@192.168.1.100。如果也失败,VS Code 肯定连不上 -
Permission denied (publickey)多半是公钥没放对位置:远程服务器上检查~ubuntu/.ssh/authorized_keys是否包含你本地id_rsa.pub的全部内容(一行,无换行) - 私钥权限太宽松(比如 Windows 上生成的私钥被设为 Everyone 可读),Linux 远程端会拒收,需在本地执行
chmod 600 ~/.ssh/id_rsa(macOS/Linux)或确保 Windows 私钥文件属性里“安全”选项卡中只有当前用户有读取权 - VS Code 弹窗提示输入密码,但你配的是密钥登录——说明
IdentityFile路径不对,或私钥文件损坏,或远程/etc/ssh/sshd_config中PubkeyAuthentication yes被关了
连上了但 Python/Jupyter 内核不识别远程 Conda 环境
VS Code 远程窗口默认只认 base 环境,自己建的 conda activate pytorch_env 在终端里生效,但编辑器右下角 Python 解释器列表里看不到它——因为没注册为 Jupyter 内核。
必须在远程终端里(已连上后打开的集成终端)执行:
conda activate pytorch_env pip install ipykernel python -m ipykernel install --user --name pytorch_env --display-name "PyTorch (pytorch_env)"
注意:--user 参数不能省,否则内核注册到 root 目录,普通用户不可见;--name 是内核 ID(命令行用),--display-name 是 VS Code 下拉菜单里显示的名字。做完后重启 VS Code 窗口或刷新内核列表(Ctrl+Shift+P → “Python: Refresh kernels”)。
真正麻烦的是环境变量继承:远程终端里 export PATH 或 conda activate 不会自动传给 VS Code 启动的进程。如果 Python 解释器路径指向了错误的 python(比如 base 环境的),就得手动在 VS Code 设置里指定解释器路径,或者把 conda 初始化代码加进 ~/.bashrc 并确保 VS Code 启动时加载它。











