我正在尝试将生成的密钥添加到ssh代理中。下面是我的步骤
C:repo>ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:Usersmante1/.ssh/id_rsa):C:repokey
生成密钥后,我启动ssh代理并添加它
C:repo>start-ssh-agent
Found ssh-agent at 13460
Found ssh-agent socket at /tmp/ssh-vKzdrs37QYVK/agent.821
C:repo>ssh-add ~/.ssh/id_rsa
Error connecting to agent: No such file or directory
VonC可能是正确的,因为您需要修复您的路径,但我面临着同样的问题尽管使用正确的路径。在我的例子中,我需要启动ssh-agent才能使命令工作.
从GitHub运行示例命令不起作用,但是,由于我已经安装了OpenSSH,我只是启动了预安装的"OpenSSH认证代理";服务
- 以管理员模式运行Windows PowerShell
Get-Service ssh-agent | Set-Service -StartupType Automatic
# By default the ssh-agent service is disabled. Configure it to start automatically.
# Make sure you're running as an Administrator.
Start-Service ssh-agent
# Start the service
Get-Service ssh-agent
# This should return a status of Running
ssh-add <complete-key-path-here>
Key Path Example: C:Usersso.ssh/key-name
# Now load your key files into ssh-agent
原文来源:https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement
这个问题可能是因为你有两种类型的ssh-agent.exe,你可以在任务管理器中看到它们,一个ssh-agent将来自git,另一个将来自OpenSSH。
修复
- 从任务管理器中结束所有ssh任务
- 进入你的私钥所在目录
C:repokey
,这应该是你的工作目录,然后运行start-ssh-agent
会自动将你的私钥添加到ssh,你不需要ssh-add
命令。
Imp
-
start-ssh-agent
将使用git 中的ssh -
start ssh-agent
将使用OpenSSH 中的ssh
所以你使用的ssh版本和你使用
添加/生成的密钥之间可能存在不一致如果您已经在C:repokey
生成了密钥,那么ssh-add
需要的密钥是…C:repokey
, not~/.ssh/id_rsa
C:repo>ssh-add C:repokey
可以。
试着输入:
ssh-agent bash
,然后执行:
ssh-add...
在我的情况下,~
是问题所在。一旦我输入我的完整路径ssh-add C:Usersqa95.sshid_rsa
,它工作了。
看起来在PowerShell中不完全支持波浪扩展到用户目录,所以即使dir ~.sshid_rsa
可以正常工作,ssh-add
也不喜欢它。
我在Windows上也遇到过这种情况。我可以这样修改:
- 对于Windows,在创建ssh文件 时留下一个空白的密码短语
- 确保您的HOMEPATH环境指向。ssh文件夹保存的位置
$env:HOMEPATH='C:Users<username>'
同样重要的是要在特定的用户目录下,文件夹名称为'.ssh'
但文件名不必是id_rsa
和id_rsa.pub