VS Code Remote SSH 免密登录配置教程—新
一、适用环境
-
本地系统:Windows 10 / Windows 11
-
开发工具:VS Code + Remote - SSH
-
远程系统:Ubuntu / CentOS / openEuler / Rocky Linux 等 Linux 系统
-
SSH 客户端:Windows 自带 OpenSSH
配置完成后,可实现:
-
VS Code Remote SSH 不再输入密码
-
ssh 命令免密登录
-
scp、rsync 等工具共享同一套密钥认证
二、检查本地是否已有 SSH 密钥
打开 PowerShell:
dir $env:USERPROFILE\.ssh
正常情况下可以看到:
C:\Users\WangRuihua\.ssh
config
id_rsa
id_rsa.pub
known_hosts
known_hosts.old
其中:
| 文件 | 说明 |
|---|---|
| id_rsa | 私钥(不能泄露) |
| id_rsa.pub | 公钥(复制到服务器) |
| config | SSH 配置文件 |
| known_hosts | 已连接服务器记录 |
如果已经存在 id_rsa 和 id_rsa.pub,无需重新生成密钥。
三、没有密钥时生成 SSH Key
如果没有 id_rsa,执行:
ssh-keygen -t rsa -b 4096
一路按 Enter。
如果询问:
Enter passphrase:
直接按 Enter(留空),即可实现完全免密登录。
生成后:
C:\Users\用户名\.ssh\id_rsa
C:\Users\用户名\.ssh\id_rsa.pub
四、查看本地公钥
执行:
type $env:USERPROFILE\.ssh\id_rsa.pub
例如:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQ...... WangRuihua@PC
复制整整一行。
五、将公钥复制到 Linux 服务器
例如服务器:
IP:188.18.18.169
用户:wzhpc
第一次仍需输入密码登录:
ssh wzhpc@188.18.18.169
进入服务器后执行:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
编辑授权文件:
vim ~/.ssh/authorized_keys
将刚才复制的公钥整行粘贴进去。
保存退出:
Esc
:wq
修改权限:
chmod 600 ~/.ssh/authorized_keys
六、验证服务器权限
执行:
ls -ld ~/.ssh
ls -l ~/.ssh
正常结果:
drwx------ ~/.ssh
-rw------- authorized_keys
若权限不正确:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
七、配置 VS Code SSH Config
编辑:
C:\Users\WangRuihua\.ssh\config
推荐写法:
Host 188.18.18.169
HostName 188.18.18.169
Port 22
User wzhpc
IdentityFile C:\Users\WangRuihua\.ssh\id_rsa
IdentitiesOnly yes
ForwardAgent yes
各参数说明:
| 参数 | 说明 |
|---|---|
| Host | VS Code 显示名称 |
| HostName | 实际服务器 IP |
| Port | SSH 端口 |
| User | 登录用户 |
| IdentityFile | 私钥路径 |
| IdentitiesOnly yes | 强制使用指定私钥 |
| ForwardAgent | 转发 SSH Agent(可选) |
八、测试 SSH 登录
PowerShell:
ssh wzhpc@188.18.18.169
或者:
ssh 188.18.18.169
如果直接进入:
Last login...
[wzhpc@server ~]$
说明免密登录已经成功。
九、VS Code 使用方法
打开 VS Code。
依次选择:
Ctrl + Shift + P
输入:
Remote-SSH: Connect to Host...
选择:
188.18.18.169
首次连接会安装 VS Code Server。
之后再次连接将不会要求输入密码。
十、快速配置(推荐)
PowerShell 一条命令完成公钥复制:
Get-Content $env:USERPROFILE\.ssh\id_rsa.pub | ssh wzhpc@188.18.18.169 "umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys"
只需输入一次服务器密码即可完成配置。
十一、常见问题排查
1. 仍然要求输入密码
查看调试日志:
ssh -vvv wzhpc@188.18.18.169
重点查看是否出现:
Offering public key
Authentication succeeded (publickey)
2. 查看服务器是否已安装公钥
cat ~/.ssh/authorized_keys
确认其中包含本机 id_rsa.pub 的内容。
3. 检查 SSH 服务配置
sudo grep -E "PubkeyAuthentication|AuthorizedKeysFile" /etc/ssh/sshd_config
应包含:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
如修改过配置,重启 SSH 服务:
Ubuntu:
sudo systemctl restart ssh
CentOS / openEuler:
sudo systemctl restart sshd
4. SELinux 导致密钥失效(CentOS/openEuler)
如果权限正确但仍无法免密登录,可执行:
restorecon -Rv ~/.ssh
十二、最佳实践
建议在 SSH 配置中统一指定私钥:
IdentityFile C:\Users\WangRuihua\.ssh\id_rsa
IdentitiesOnly yes
这样即使本机存在多个 SSH 密钥,也能确保 VS Code 和 SSH 使用正确的密钥进行认证。
完成以上配置后,Windows 的 SSH、VS Code Remote SSH、scp、sftp、rsync 等工具都将共用这套密钥认证,实现统一免密登录。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)