连接代理错误:没有这样的文件或目录-添加密钥到ssh代理



我正在尝试将生成的密钥添加到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。

修复

  1. 从任务管理器中结束所有ssh任务
  2. 进入你的私钥所在目录C:repokey,这应该是你的工作目录,然后运行start-ssh-agent会自动将你的私钥添加到ssh,你不需要ssh-add命令。

Imp

  1. start-ssh-agent将使用git
  2. 中的ssh
  3. start ssh-agent将使用OpenSSH
  4. 中的ssh

所以你使用的ssh版本和你使用

添加/生成的密钥之间可能存在不一致

如果您已经在C:repokey生成了密钥,那么ssh-add需要的密钥是…C:repokeynot~/.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上也遇到过这种情况。我可以这样修改:

  1. 对于Windows,在创建ssh文件
  2. 时留下一个空白的密码短语
  3. 确保您的HOMEPATH环境指向。ssh文件夹保存的位置
$env:HOMEPATH='C:Users<username>'

同样重要的是要在特定的用户目录下,文件夹名称为'.ssh'但文件名不必是id_rsaid_rsa.pub

最新更新