是否在PowerShell中ssh-add添加了我的Git密钥,但拒绝了权限

时间:2019-03-27 07:38:24

标签: git powershell ssh

我正在微调开发控制台。目前,我正在尝试修改PowerShell的体验,并希望将其用作我的主要控制台。

这很好,我现在正忙于将Git密钥实现到控制台,因此可以通过PowerShell进行推入,拉入等操作。 到目前为止,我所做的是安装Windows版Git,并在安装Git Extensions时,通过选择选项Use Git and optional Unix tools from the Windows Command Prompt确保将Linux命令添加到路径中。

然后,我运行以下命令。

# Check status of service
Get-Service ssh-agent

# Check the start type of the service
Get-Service ssh-agent | Select StartType

# Set the start type to manual
Get-Service -Name ssh-agent | Set-Service -StartupType Manual

# Start the service
Start-Service ssh-agent

# Adding my certificate
ssh-add $env:USERPROFILE\.ssh\myCertificate

进行推送(或与此相关的提取/提取)时,我收到一条Permission denied消息。

PS> git push origin master
Warning: Permanently added the RSA host key for IP address '140.82.118.4' to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

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

我正在多个系统上收到此消息。完全相同的密钥在已安装的Git Bash控制台中可以正常工作,因此这应该不是问题。

我的猜测是在通过PowerShell执行拉/推/取操作时未使用加载的SSH密钥,但这只是一个猜测。

我还需要在PowerShell中进行其他配置以使用加载的SSH密钥在Git中执行某些操作吗?

更新

我有figured out an work-around, but this is suboptimal

我还尝试了以下命令ssh -vT git@github.com。运行此命令时,我看到了很多事情,最后,它试图通过我的证书C:\\Users\\jan/.ssh/myCertificate连接到GitHub。使用此证书后,我已成功连接到GitHub。因此,如果使用此证书,我实际上可以做些事。

1 个答案:

答案 0 :(得分:0)

好吧,我知道了(部分)。

Git默认情况下会搜索名为id_rsa的密钥,该密钥在我的系统上不存在。我已将我的私钥命名为jan(或在myCertificate以上的问题中命名。

即使我已通过ssh-add加载了此证书,但在尝试进行pullpush等时也不会使用该证书。 将文件重命名为id_rsa后,我可以执行以下操作(如果再次指定密码)。

虽然可行,但我不想使用这个重命名的文件。为了对GitHub使用其他私钥,我创建了具有以下内容的以下文件~\.ssh\config

host github.com
 HostName github.com
 IdentityFile ~/.ssh/jan
 User git

虽然这可行,但我认为这不是最理想的解决方案。另外,因为在使用遥控器进行操作时,我必须再次指定密码短语。