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 中(以管理员身份运行):
检查当前状态ssh代理:
Get-Service | ?{$_.Name -like '*ssh-agent*'} | select -Property Name, StartType, Status
如果服务被禁用,则启用该服务:
Set-Service -Name ssh-agent -StartupType Manual
启动服务:
Start-Service ssh-agent
像以前一样添加您的密钥:
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
.由于某种原因,代理会自动选择该密钥,而无需添加密钥并开始工作。发生在阿奇。