Wong Jia Hau Asked: 2018-08-24 23:28:13 +0800 CST2018-08-24 23:28:13 +0800 CST 2018-08-24 23:28:13 +0800 CST ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 772 ssh-add单独是行不通的: Error connecting to agent: No such file or directory 我应该如何使用该工具? linux ssh 4 个回答 Voted Best Answer Panki 2018-08-24T23:41:59+08:002018-08-24T23:41:59+08:00 您需要先初始化代理。 您可以通过多种方式执行此操作。要么通过启动一个新的外壳 ssh-agent bash 或通过评估ssh-agent当前 shell 中返回的变量。 eval "$(ssh-agent)" 我建议使用第二种方法,因为您保留了所有历史记录和变量。 Chris 2018-10-17T08:27:22+08:002018-10-17T08:27:22+08:00 在 Windows PowerShell 中(以管理员身份运行): 检查ssh-agent的当前状态: 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> Kusalananda 2018-08-24T23:52:44+08:002018-08-24T23:52:44+08:00 SSH 代理没有运行,或者它设置的环境变量在当前环境中不可用(最重要的是SSH_AUTH_SOCK),或者它们设置不正确(指向一个死代理)。 您可以使用在当前 shell 会话中启动代理 eval "$(ssh-agent)" 或通过代理启动一个新的 shell 会话,使用 ssh-agent fish (替换fish为您正在使用的任何外壳)。但是既然你说你以前不用这个也可以使用ssh-add,这让我相信你不小心杀死了代理(或者由于其他原因它已经终止了)。该错误消息使我认为SSH_AUTH_SOCK环境变量实际上已设置,但ssh-add在该路径上找不到有效的通信套接字。 如果您完全注销并再次登录,或者重新启动机器,如果您通常的做事方式再次起作用,我不会感到惊讶。 ianrandmckenzie 2021-12-18T11:36:19+08:002021-12-18T11:36:19+08:00 苹果系统 大苏尔 在我的边缘情况下,问题是我以某种方式关闭了服务,或者它试图使用 bash 而不是 zsh。不太确定,但这起到了作用: ssh-agent zsh
您需要先初始化代理。
您可以通过多种方式执行此操作。要么通过启动一个新的外壳
或通过评估
ssh-agent
当前 shell 中返回的变量。我建议使用第二种方法,因为您保留了所有历史记录和变量。
在 Windows PowerShell 中(以管理员身份运行):
检查ssh-agent的当前状态:
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>
SSH 代理没有运行,或者它设置的环境变量在当前环境中不可用(最重要的是
SSH_AUTH_SOCK
),或者它们设置不正确(指向一个死代理)。您可以使用在当前 shell 会话中启动代理
或通过代理启动一个新的 shell 会话,使用
(替换
fish
为您正在使用的任何外壳)。但是既然你说你以前不用这个也可以使用ssh-add
,这让我相信你不小心杀死了代理(或者由于其他原因它已经终止了)。该错误消息使我认为SSH_AUTH_SOCK
环境变量实际上已设置,但ssh-add
在该路径上找不到有效的通信套接字。如果您完全注销并再次登录,或者重新启动机器,如果您通常的做事方式再次起作用,我不会感到惊讶。
苹果系统
大苏尔
在我的边缘情况下,问题是我以某种方式关闭了服务,或者它试图使用 bash 而不是 zsh。不太确定,但这起到了作用:
ssh-agent zsh