2016-03-02 259 views
0

我必须在我的服务器上安装一个公钥,以便远程脚本可以将ftp文件传输到我的服务器。无法添加ssh密钥。 ssh-add返回1

我将公钥放在我的〜/ .ssh目录中,并确保ssh-agent正在运行,并且相关的env变量设置正确。

我确信,在公共密钥权限被设置为600

我跑的ssh-add和它没有添加的公共密钥。我运行了ssh-add并提供了公钥的名称,并要求输入密码。由于生成公钥的用户没有使用密码短语,因此我将其留空并按回车键。什么都没有发生,echo $?返回1.

我将公钥更名为标识。我再次运行ssh-add,并试图添加密钥,再次询问密码短语。我再次敲入并没有发生任何事情,echo $?仍然返回1.

我发现了几个答案,说ssh-add将添加私钥如果您提供参数,并且您必须运行它没有参数。这似乎不是现实。我已经尝试了ssh2格式和openSSH格式的密钥。

我也读过,我可以手动添加密钥。我读过这个文件应该在〜/ .ssh中,我读过不同的消息来源说它必须是authorized_keys,authorized_keys2和known_hosts。我尝试了所有三个远程脚本仍然无法登录。

我用于authorized_keys中的条目的格式是“SSH-RSA AAAAB3 ... =”

权限的所有三个文件是600

我完全失去了。

我在Solaris 10上

+0

你能编辑你的问题来显示运行ssh-add的例子吗?包括您运行的实际命令以及它生成的实际输出。重命名之前,密钥文件的名称是什么? – Kenster

+1

我发现我的问题是,当我将密钥添加到authorized_keys文件时,我在末尾有一个“=”,因为我使用的另一台服务器上的authorized_keys文件在每个条目的末尾都有。当我随心所欲地移除它时,它开始工作。 – JustJustin

回答

0

我的问题是,我有一个=在我的authorized_keys文件行的末尾。

我已经添加了=,因为这是我使用的另一台服务器上的authorized_keys文件的写法。我不知道为什么这样,或者为什么我认为这是必要的部分或格式,但删除让远程用户登录没有任何问题。