📅  最后修改于: 2023-12-03 15:21:03.623000             🧑  作者: Mango
当我们使用 VS Code 的远程 SSH 扩展连接远程服务器时,可能会遇到不断询问密码的问题,如下图所示:
这样就会导致连接远程服务器失败,影响开发工作的正常进行。
造成这个问题的原因非常简单,就是因为每次连接远程服务器时,需要输入密码,而远程 SSH 扩展没有缓存密码。因此,每次需要手动输入密码,导致不断询问。
SSH 密钥能够免去每次输入密码的麻烦,只需在第一次连接时,将公钥添加到服务器的认证文件中即可。
在本地生成 SSH 密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
将公钥添加到服务器认证文件中:
cat ~/.ssh/id_rsa.pub | ssh username@remote.host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
然后,VS Code 扩展中配置 SSH 配置文件(如 ~/.ssh/config
),配置示例如下:
Host myserver
HostName remote.host
User username
IdentityFile ~/.ssh/id_rsa
最后,在 VS Code 中选择 SSH 远程连接时,选择该 SSH 配置即可自动连接服务器。
SSH Agent 能够管理多个 SSH 密钥,且无需手动输入密码,只需每次启动时将公钥添加到 SSH Agent 即可。
ssh-add ~/.ssh/id_rsa
在 VS Code 中选择 SSH 远程连接时,选择 Authentication Agent,即可自动连接并管理密钥。
在使用 VS Code 远程 SSH 扩展连接远程服务器时,我们可以通过使用 SSH 密钥或 SSH Agent 的方式,避免每次手动输入密码的问题,提高开发效率。