在 Visual Studio Code 中使用 Remote-SSH 实现免密登录
注意远程服务器为Linux
需要通过 SSH 密钥对进行认证。以下是详细步骤:
1. 生成本地 SSH 密钥对
ssh-keygen -t ed25519 -C "your_email@example.com"
# 或使用 RSA 算法(兼容旧系统):
# ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- 按提示保存密钥(默认路径
~/.ssh/id_ed25519) - 设置空密码(直接回车两次) 实现完全免密
2. 将公钥复制到远程服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@remote-host
如果提示命令不存在,可手动操作:
cat ~/.ssh/id_ed25519.pub | ssh username@remote-host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
3. 配置 VSCode SSH 连接
- 打开 VSCode 命令面板 (
Ctrl+Shift+P) - 选择
Remote-SSH: Open SSH Configuration File... - 添加配置:
Host my-remote-server
HostName server-ip-or-domain
User your-username
IdentityFile ~/.ssh/id_ed25519 # 指向你的私钥
IdentitiesOnly yes # 强制使用密钥认证
4. 连接测试
- 在 VSCode Remote Explorer 中选择配置的主机名
my-remote-server - 应直接连接无需密码
5. 权限问题排查(如仍提示密码)
在远程服务器执行:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
6. 高级配置(可选)
多密钥管理:在 ~/.ssh/config 添加:
Host *
AddKeysToAgent yes
UseKeychain yes # macOS 钥匙链记忆密码
IdentityFile ~/.ssh/id_ed25519
原理说明
| 组件 | 作用 |
|---|---|
私钥 (id_ed25519) | 保存在本地机器,VSCode 自动调用 |
公钥 (id_ed25519.pub) | 追加到远程服务器的 ~/.ssh/authorized_keys |
| SSH 配置 | 告诉 VSCode 使用指定密钥连接 |
注意:首次连接可能需要确认主机指纹,选择
Continue即可
常见问题解决
-
仍要求输入密码:
- 检查远程服务器日志:
tail -f /var/log/auth.log - 禁用密码登录(增强安全):
# 远程服务器执行: sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config sudo systemctl restart sshd
- 检查远程服务器日志:
-
Windows 系统特殊设置:
- 确保 OpenSSH 服务运行:
Get-Service ssh-agent | Set-Service -StartupType Automatic Start-Service ssh-agent ssh-add $env:USERPROFILE\.ssh\id_ed25519
- 确保 OpenSSH 服务运行:
-
连接超时:
- 在 SSH 配置添加:
ServerAliveInterval 30
- 在 SSH 配置添加:
按照以上步骤操作后,VSCode Remote-SSH 即可实现完全免密登录,同时保证连接安全性。
3132




被折叠的 条评论
为什么被折叠?



