ssh-add 返回:“连接到代理时出错:没有这样的文件或目录”

ssh-add 返回:“连接到代理时出错:没有这样的文件或目录”

ssh-add单独不起作用:

Error connecting to agent: No such file or directory

我应该如何使用该工具?

答案1

您需要ssh-agent先初始化。

您可以通过多种方式做到这一点。通过启动一个新的 shell

ssh-agent bash

ssh-agent或者通过评估当前 shell 中返回的脚本。

eval "$(ssh-agent)"

我建议使用第二种方法,因为您保留了所有历史记录和变量。

答案2

在 Windows PowerShell 中(以管理员身份运行):

  1. 检查当前状态ssh代理:

    Get-Service | ?{$_.Name -like '*ssh-agent*'} | select -Property Name, StartType, Status

  2. 如果服务被禁用,则启用该服务:

    Set-Service -Name ssh-agent -StartupType Manual

  3. 启动服务:

    Start-Service ssh-agent

  4. 像以前一样添加您的密钥:

    ssh-add <path to the key>

答案3

SSH代理没有运行,或者它设置的环境变量在当前环境中不可用(最重要的是SSH_AUTH_SOCK),或者它们设置不正确(指向一个死代理)。

您可以使用以下命令在当前 shell 会话中启动代理

eval "$(ssh-agent)"

或通过代理启动新的 shell 会话

ssh-agent fish

(替换fish为你正在使用的 shell)。但既然你说你习惯于能够ssh-add在没有这个的情况下使用,这让我相信你不小心杀死了代理(或者它由于某些其他原因而终止)。该错误消息让我认为SSH_AUTH_SOCK环境变量实际上已设置,但ssh-add在该路径上找不到有效的通信套接字。

如果您完全注销并再次登录,或者重新启动计算机,您通常的处理方式会再次起作用,我不会感到惊讶。

答案4

我刚刚偶然发现的是,无论我如何尝试都无法添加密钥。重新安装 openssh,在 systemd 中启动它,停止,重新启动,启动 ssh-agent,终止所有正在运行的 ssh-agent 进程,然后尝试使用新的进程......我总是会找不到该文件或目录。最后,我删除了 ~/.ssh 中的所有 SSH 密钥,创建了一个我自定义命名的新密钥,但它仍然不起作用。什么做了工作当我将该键重命名为id_rsa.由于某种原因,代理会自动选择该密钥,而无需添加密钥并开始工作。发生在阿奇。

相关内容