步骤 1:在本地生成 SSH 密钥对
如果你本地(通常是 Windows)还没有 SSH 密钥,需要先生成一个。
打开你本地的终端(PowerShell、CMD 或你习惯使用的 WSL 终端),输入以下命令:
ssh-keygen -t ed25519 -C "vscode-remote"
- 注意: 运行后系统会提示你选择保存路径,直接 回车 使用默认路径即可(通常在
C:\Users\你的用户名\.ssh\id_ed25519)。 - 当提示输入
passphrase(密码短语)时,直接 连续回车 置空。这样才能真正实现免密。
步骤 2:将公钥上传到远程服务器
你需要将本地刚刚生成的公钥 (id_ed25519.pub) 放到远程服务器的授权列表中。
如果你在 Windows PowerShell 下操作:
可以直接运行以下命令(将你的公钥内容追加到服务器上):
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh luyanfeng@xx.xx.xx.xx "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
如果你在 WSL 或 Linux 终端下操作:
你可以直接使用更便捷的专用命令:
ssh-copy-id -i ~/.ssh/id_ed25519.pub luyanfeng@xx.xx.xx.xx
(这一步会要求你最后一次输入远程服务器 luyanfeng 的密码进行确认)
步骤 3:更新 VS Code 的 SSH Config 文件
最后,告诉 VS Code 使用这个私钥去连接服务器。打开你问题中提到的 VS Code 远程配置,添加一行 IdentityFile 显式指向你的私钥文件:
Host luyanfeng-xx.xx.xx.xx
HostName xx.xx.xx.xx
User luyanfeng
IdentityFile ~/.ssh/id_ed25519
(如果你的密钥生成在默认路径,VS Code 通常会自动寻找它,但显式写出 IdentityFile 可以避免很多路径识别错误。)
💡 常见排错:
完成上述配置后,再次在 VS Code 中点击连接,应该就可以直接进入而无需密码了。如果仍然要求输入密码,通常是服务器端的权限设置太严格。你可以 SSH 登入服务器并检查 ~/.ssh 目录的权限:
- 远程
~/.ssh目录权限必须是700(chmod 700 ~/.ssh) - 远程
~/.ssh/authorized_keys文件权限必须是600(chmod 600 ~/.ssh/authorized_keys)
结语
第三百八十篇博文写完,开心!!!!
今天,也是充满希望的一天。