通过密钥对实现VSCode SSH免密码登录
VSCode不像Jetbrains系列那样可以对远程SSH会话保存密码,重载窗口(例如安装/卸载插件)或是意外断开重新连接,VSCode都会弹出prompt窗口要求输入SSH密码,对于长期生产环境开发非常麻烦,但VSCode并不支持保存密码,因此我们需要利用SSH的密钥认证方式来实现免密码登录。
在主机上生成SSH Key
主机指你运行VSCode敲代码的那台机器。
理论上适用于Windows/Linux/macOS任何系统。
打开终端,输入ssh-keygen
回车:
第一次会询问密钥文件的保存位置(需要填写完整路径),建议手动指定,否则会覆盖之前生成过的密钥。
passphrase
可以留空(回车两次),如果填写将生成额外的密码保护。
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\Patrick/.ssh/id_rsa): C:\Users\Patrick\.ssh\jetson_key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in jetson.
Your public key has been saved in jetson.pub.
The key fingerprint is:
SHA256:c6byjFxxRxxxxxxxxxxxxxTM5Z9aM patrick@Patrick-Laptop
The key's randomart image is:
+---[RSA 4096]----+
| |
| |
| |
| |
| |
| |
| |
| |
+----[SHA256]-----+
看到这样的输出就代表SSH密钥已生成好,找到之前填写的输出路径(如果没填写则是默认覆盖%USERPROFILE%/.ssh/id_rsa
)
添加Key到远程主机
如果你运行Linux/macOS,那么应该可以直接使用ssh-copy-id
:
ssh-copy-id username@ip -i /path/to/your/key
# username 为用户名,ip为登陆地址,-i后面跟着你生成的key(如果之前生成没有指定路径可以不填-i,将上传默认key)
如果你使用的是Windows,那么通常不支持此命令,需要手动添加公钥。
登录到远程主机,编辑authorized_keys文件:
nano ~/.ssh/authorized_keys
打开你之前生成的pub
文件,复制其中的内容到authorized_keys
中,保存即可。
更改主机上的SSH Config
默认情况下,VSCode将SSH配置保存在%USERPROFILE%/.ssh/config
,如果你之前更改过,那么可能不是在此路径。
打开此配置文件,确认是你想要免密登录的主机,在后面添加一行IdentityFile
:
如果你没有手动指定key输出路径,那么就直接填写~/.ssh/id_rsa
重启VSCode工作区
接下来,关闭VSCode再重新打开工作区,就会发现已经自动登陆上了,不再需要输入密码。
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-SA 4.0 协议,您可以在不商用的情况下,免费转载或修改本文内容,完整转载请注明来自 Patrick's Blog
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果