我正在微调开发控制台。目前,我正在尝试修改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。因此,如果使用此证书,我实际上可以做些事。
答案 0 :(得分:0)
好吧,我知道了(部分)。
Git默认情况下会搜索名为id_rsa
的密钥,该密钥在我的系统上不存在。我已将我的私钥命名为jan
(或在myCertificate
以上的问题中命名。
即使我已通过ssh-add
加载了此证书,但在尝试进行pull
,push
等时也不会使用该证书。
将文件重命名为id_rsa
后,我可以执行以下操作(如果再次指定密码)。
虽然可行,但我不想使用这个重命名的文件。为了对GitHub使用其他私钥,我创建了具有以下内容的以下文件~\.ssh\config
。
host github.com
HostName github.com
IdentityFile ~/.ssh/jan
User git
虽然这可行,但我认为这不是最理想的解决方案。另外,因为在使用遥控器进行操作时,我必须再次指定密码短语。