📜  vscode 远程 ssh 不断询问密码 (1)

📅  最后修改于: 2023-12-03 15:21:03.623000             🧑  作者: Mango

使用 VS Code 远程 SSH 时不断询问密码的解决方案

问题描述

当我们使用 VS Code 的远程 SSH 扩展连接远程服务器时,可能会遇到不断询问密码的问题,如下图所示:

这样就会导致连接远程服务器失败,影响开发工作的正常进行。

问题原因

造成这个问题的原因非常简单,就是因为每次连接远程服务器时,需要输入密码,而远程 SSH 扩展没有缓存密码。因此,每次需要手动输入密码,导致不断询问。

解决方案
1. 使用 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 配置即可自动连接服务器。

2. 使用 SSH Agent 来管理密钥

SSH Agent 能够管理多个 SSH 密钥,且无需手动输入密码,只需每次启动时将公钥添加到 SSH Agent 即可。

ssh-add ~/.ssh/id_rsa

在 VS Code 中选择 SSH 远程连接时,选择 Authentication Agent,即可自动连接并管理密钥。

结论

在使用 VS Code 远程 SSH 扩展连接远程服务器时,我们可以通过使用 SSH 密钥或 SSH Agent 的方式,避免每次手动输入密码的问题,提高开发效率。