我启动一个新的 shell(新的终端窗口),然后我运行的所有命令如下:
user@host :~ $ eval "$(ssh-agent -s)"
Agent pid 1413341
user@host :~ $ ssh-add -vvv ~/.ssh/keys/<mykey>
Enter passphrase for /home/mate/.ssh/keys/<mykey>:
user@host :~ $ ssh-add -l
The agent has no identities.
ssh-add
不返回任何输出,但经过验证后,返回错误代码1
(tried ssh-add ...
again then echo $?
)。但是,它实际上并没有在 stderr 上打印任何输出。
该命令后,环境变量 $SSH_AGENT_PID 和 $SSH_AUTH_SOCK 已正确设置eval "$(ssh-agent -s)"
。
PS:也尝试用instead进行完整操作eval "$(ssh-agent)"
,但是无济于事。
附言:除非我错过了什么,否则 stackoverflow、superuser 和 unix.stackexchange 上的所有问题都在处理另一种特定情况,例如ssh-add
单独运行(因此只考虑标准关键位置)或尚未正确启动代理的人等...
答案1
好吧,事实证明这显然是由于需要(非常近的)软件包更新,因为它在系统更新和重启后现在可以再次工作了。
在所有与 依赖项匹配的更新软件包中openssh
,罪魁祸首似乎是tzdata
。因此请检查系统上待处理的软件包更新。
PS:对此要持保留态度,因为其中存在许多纠缠的依赖关系,我不确定所有这些在底层是如何工作的(libcap
libcap-ng
,,libgcrypt
libxcrypt
等等......)。
答案2
我使用 创建的新用户也遇到了同样的问题adduser
。事实证明,这个新用户是config
在.ssh
文件夹中没有文件的情况下创建的。
我创建了这样一个文件,其中包含
AddKeysToAgent yes
这似乎解决了我的问题。但是安全性是一个棘手的问题,SSH 有很多配置,其他点可能需要微调,例如SSH_ASKPASS
等。