我可以使用在本地添加无密码的 id_ed25519 文件ssh-add -k
,但不能在远程服务器上添加。
本地:
☁ ~ ssh-add -l
The agent has no identities.
☁ ~ ssh-add -k ~/.ssh/id_ed25519
Identity added: ~/.ssh/id_ed25519 ([email protected])
☁ ~ ssh-add -l
256 SHA256:.... [email protected] (ED25519)
在本地,我的操作系统并不关心这是一个无密码密钥,也不会提示输入密码。在远程服务器上,系统提示我输入密码,当我在无密码密钥的空行上按下 ENTER 键时,该过程退出,并且没有添加任何内容:
在我的远程服务器上,我无法添加相同以同样的方式输入:
[app@... ~]$ ssh-add -l
The agent has no identities.
[app@... ~]$ ssh-add -k ~/.ssh/id_ed25519
Enter passphrase for /home/app/.ssh/id_ed25519:
[app@... ~]$ ssh-add -l
The agent has no identities.
我不明白具体发生了什么变化,因为这曾经在我的服务器上工作,尽管使用了不同的密钥(最近从 rsa 更改为 ed25519)。
我不想设置带密码的密钥,因为这是修复以前可以运行的自动化过程的一部分。我想知道为什么 ssh-add 在一台机器上会出现问题,而在另一台机器上不会出现问题,而且使用的是相同的密钥。
答案1
当我尝试时,答案出现了ssh -vT
:debug1: key_parse_private2: no end marker
远程服务器上的私钥不包含该行-----END OPENSSH PRIVATE KEY-----
。添加后,一切都开始正常运行。