无法在远程服务器上使用 ssh-add 添加无密码私钥

无法在远程服务器上使用 ssh-add 添加无密码私钥

我可以使用在本地添加无密码的 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 -vTdebug1: key_parse_private2: no end marker

远程服务器上的私钥不包含该行-----END OPENSSH PRIVATE KEY-----。添加后,一切都开始正常运行。

相关内容