VS Code Remote-SSH 免密登录配置:告别每次输入密码的繁琐

38 阅读2分钟

每次用 VS Code 的 Remote-SSH 连接虚拟机都要手动输入 root 密码,频繁断开重连时操作很繁琐,严重影响开发效率。其实只需要简单几步,就能实现免密登录,让连接像操作本地文件一样丝滑。

原理说明

SSH 默认采用密码认证,每次连接都需要提供密码。要实现免密,需要将客户端的公钥添加到服务器的受信列表中,改用密钥认证。公钥相当于一把锁,私钥是钥匙,配对成功即可免密登录。

配置步骤

  1. 在物理机(Windows)生成 SSH 密钥对

打开 PowerShell 或 CMD,执行以下命令:

ssh-keygen -t rsa -b 4096

一路回车使用默认保存路径(C:\Users\你的用户名.ssh\id_rsa),密码留空即可。

  1. 将公钥上传至虚拟机

继续在物理机终端执行(将 IP 换成你的虚拟机地址):

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@192.168.179.128 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

输入一次 root 密码完成上传。

  1. 在虚拟机上设置正确权限

用 VS Code 远程终端或 FinalShell 连上虚拟机,执行:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

权限设置是安全必需项,否则 SSH 服务会拒绝密钥登录。

  1. 验证免密登录

关闭 VS Code 重新打开,再次使用 Remote-SSH 连接 你的ip。这次不再弹出密码输入框,直接连接成功。

注意事项

· 密钥对只需在物理机生成一次,虚拟机里无需重复操作。 · 公钥可以放心分发到多台服务器,私钥务必妥善保管,切勿泄露。 · 如果仍提示输入密码,检查虚拟机 /etc/ssh/sshd_config 中 PubkeyAuthentication 是否设为 yes。

本人真实踩坑记录,内容由AI帮助润色。