VSCode 使用带有密码保护的 ssh-key 的 ssh 进行远程开发
VSCode remote developement using ssh with passphrase protected ssh-key
我有一个远程 ssh 服务器,我想在上面进行远程开发。
我的 public 密钥已添加到服务器上的授权密钥中,我的私钥受密码保护。
我使用 ssh user@host -i ~/.ssh/key
按照 here 所述添加了远程主机
但是每当我尝试在远程主机上打开一个新的 VSCode window 时,它都会失败,我在日志中看到连接超时,这是预料之中的,因为我没有得到询问我的私钥密码。
我阅读了 this post 关于使用 ssh 进行远程开发的文章,并且我在 google 上进行了搜索,但找不到任何关于我可以对 enable/enter ssh 做什么的提示-连接到远程主机时的密钥密码。
我知道我可以使用不受密码保护的密钥连接到远程主机,但我不是要求这样做,我想知道是否可以使用 VSCode 连接到远程主机受密码保护的密钥。
如果您的密钥不是默认密钥,则意味着您需要一个 ~/.ssh/config 条目,您可以在其中指定 SSH 连接参数:
Host myserver
Hostname host
User user
IdentityFile ~/.ssh/key
Visual Studio Code Remote Development 会自动读取配置文件,当你要求打开 SSH 会话时,你会看到“myserver”条目:如果你 select 它,打开的 SSH 会话将使用 ~/.ssh/key
,正确的私钥。
然后,只要你的ssh-agent is enabled,并且你至少输入过一次你的密码(通过手动ssh myserver
),VSCode将使用相同的代理来获取需要时输入密码。
这就是为我解决的问题,您的问题可能有所不同。
- 在VScode中选择命令:
Remote-SSH: Open SSH Configuration File...
- 选择提供给您的位置(或创建一个配置文件 不带扩展名 到所需位置),例如:
C:\Users\[USER_NAME]\.ssh\config
。确保您拥有适当的权限。
- 准备你的配置文件,例如
Host Custom_Name
HostName example.server.com
User your_user_name
IdentityFile C:\Users\[USER_NAME]\Documents\MobaXterm\home\.ssh\id_rsa
(or wherever you have the private key)
- 最后将自定义路径添加到您的配置文件。这是我长久以来所缺少的
{
// add custom configuration file path
"remote.SSH.configFile": "C:\Users\[USER_NAME]\.ssh\config",
// Other settings
// omit comma after *config"* if that is your last setting
}
现在它应该要求输入密码而不是密码。
P.S。这里有很多关于设置的有用信息,尤其是我为简洁起见省略的键。
我有一个远程 ssh 服务器,我想在上面进行远程开发。
我的 public 密钥已添加到服务器上的授权密钥中,我的私钥受密码保护。
我使用 ssh user@host -i ~/.ssh/key
但是每当我尝试在远程主机上打开一个新的 VSCode window 时,它都会失败,我在日志中看到连接超时,这是预料之中的,因为我没有得到询问我的私钥密码。
我阅读了 this post 关于使用 ssh 进行远程开发的文章,并且我在 google 上进行了搜索,但找不到任何关于我可以对 enable/enter ssh 做什么的提示-连接到远程主机时的密钥密码。
我知道我可以使用不受密码保护的密钥连接到远程主机,但我不是要求这样做,我想知道是否可以使用 VSCode 连接到远程主机受密码保护的密钥。
如果您的密钥不是默认密钥,则意味着您需要一个 ~/.ssh/config 条目,您可以在其中指定 SSH 连接参数:
Host myserver
Hostname host
User user
IdentityFile ~/.ssh/key
Visual Studio Code Remote Development 会自动读取配置文件,当你要求打开 SSH 会话时,你会看到“myserver”条目:如果你 select 它,打开的 SSH 会话将使用 ~/.ssh/key
,正确的私钥。
然后,只要你的ssh-agent is enabled,并且你至少输入过一次你的密码(通过手动ssh myserver
),VSCode将使用相同的代理来获取需要时输入密码。
这就是为我解决的问题,您的问题可能有所不同。
- 在VScode中选择命令:
Remote-SSH: Open SSH Configuration File...
- 选择提供给您的位置(或创建一个配置文件 不带扩展名 到所需位置),例如:
C:\Users\[USER_NAME]\.ssh\config
。确保您拥有适当的权限。 - 准备你的配置文件,例如
Host Custom_Name HostName example.server.com User your_user_name IdentityFile C:\Users\[USER_NAME]\Documents\MobaXterm\home\.ssh\id_rsa (or wherever you have the private key)
- 最后将自定义路径添加到您的配置文件。这是我长久以来所缺少的
{ // add custom configuration file path "remote.SSH.configFile": "C:\Users\[USER_NAME]\.ssh\config", // Other settings // omit comma after *config"* if that is your last setting }
现在它应该要求输入密码而不是密码。
P.S。这里有很多关于设置的有用信息,尤其是我为简洁起见省略的键。