在 powershell 中,如何让 git 询问 ssh 密钥密码?

在 powershell 中,如何让 git 询问 ssh 密钥密码?

当我在线搜索问题时,人们总是想摆脱 ssh 密钥密码提示,但我遇到了相反的问题。

我没有使用 ssh-agent,并且希望每次连接到 ssh 服务器时,Windows 都会提示输入 ssh 密钥密码。使用sshpowershell 中的命令可以正常工作。但是当我使用 时git clone ssh://myserver/repo.git,没有 ssh 密钥密码提示,连接失败。我尝试了 Powershell 5.x 和 7.x,两者都给出了相同的结果:

> git clone ssh://myserver/repo.git
Cloning into 'repo'...
myserver: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

答案1

要让 git 在 powershell 中提示 ssh 密钥密码,GIT_SSH必须将环境变量设置为C:\Windows\System32\OpenSSH\ssh.exe。设置此环境变量后,powershell 必须是重新启动使用它。

您可以在控制面板中添加环境变量,也可以在 powershell 中执行以下命令:

$SSHPath = (Get-Command -Name 'ssh.exe').Source
[Environment]::SetEnvironmentVariable('GIT_SSH', $SSHPath, 'User')

要验证您是否已成功设置此环境变量,请在 powershell 中执行以下操作:

> echo $env:git_ssh
C:\Windows\System32\OpenSSH\ssh.exe

相关内容