如何在VS Code中使用Windows内置的OpenSSH ssh-agent,而不是Git bash的?

8
我正在Windows上运行OpenSSH,使用自秋季/秋季创作者更新以来包含的内置OpenSSH
我在PowerShell中正常使用ssh,但是Visual Studio远程开发(以及Git for Windows?)并未使用我的OpenSSH。相反,它们似乎使用MinGW中的Git for Windows SSH客户端。这意味着我所有已添加的ssh密钥在VS或Git的ssh-agent中都不存在。
如何让Visual Studio(和可能的Git)使用内置的OpenSSH安装,以便我可以在它们之间使用相同的ssh-agent?
PowerShell
以下是PowerShell中SSH的样子:
c:\Users\myusername
> Get-Command ssh

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     ssh.exe                                            7.7.2.1    C:\WINDOWS\System32\OpenSSH\ssh.exe

c:\Users\myusername
> Get-Command ssh-agent

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     ssh-agent.exe                                      7.7.2.1    C:\WINDOWS\System32\OpenSSH\ssh-agent.exe

C:\Users\myusername
> Get-Command ssh-add

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     ssh-add.exe                                        7.7.2.1    C:\WINDOWS\System32\OpenSSH\ssh-add.exe

c:\Users\myusername
> ssh-add -l
2048 SHA256:HASH_HERE C:\Users\myusername\.ssh\id_rsa (RSA)

Git Bash

myusername@COMPUTERNAME MINGW64 ~
$ which ssh
/usr/bin/ssh

myusername@COMPUTERNAME MINGW64 ~
$ which ssh-agent
/usr/bin/ssh-agent

myusername@COMPUTERNAME MINGW64 ~
$ which ssh-add
/usr/bin/ssh-add

myusername@COMPUTERNAME MINGW64 ~
$ ssh-add -l
Could not open a connection to your authentication agent.

Visual Studio

我正在使用VS Code远程开发。每次登录到我的远程计算机时,都会提示我输入私钥密码。

如果没有私钥认证,我将被提示输入登录密码(用于远程用户)。

免责声明:我在微软工作。

2个回答

7
这是一个与VS Code远程开发相关的已知问题/回归问题
解决方法很简单:更改VS Code的SSH路径。
  1. 打开VS Code设置。
  2. 搜索remote.SSH.path
  3. 将设置更改为C:\Windows\System32\OpenSSH\ssh.exe(如果编辑JSON,则为C:\\Windows\\System32\\OpenSSH\\ssh.exe)。
现在,VS Code将使用OpenSSH ssh-agent

1
当我尝试搜索这样的设置时,它显示未找到任何设置。 - dnez
1
谢谢!这让vscode可以使用我的代理 :) - tkarls

1

对我来说,创建一个系统环境变量(用户环境变量也可以)GIT_SSH=C:\Windows\System32\OpenSSH\ssh.exe让我能够在Windows 10上使用OpenSSH代理与VS Code一起使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接