ssh-add 和联系服务器失败

ssh-add 和联系服务器失败

我忘了如何执行该程序。

我在 OSX 10.9.1 上做过

  • ssh-keygen在我的服务器中运行
  • 将私钥 id_rsa 移至我的笔记本电脑$HOME/.ssh/id_rsa,从我的服务器中删除私钥 id_rsa
  • $HOME/.ssh/config在我的笔记本电脑中创建以下内容
  • 跑步ssh-add $HOME/.ssh/id_rsa

我的 .ssh/config

Host server.myhomepage.com
  User masi
  Port 22
  Hostname server.myhomepage.com
  IdentityFile ~/.ssh/id_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes

我跑

ssh-add .ssh/id_rsa 
Enter passphrase for .ssh/id_rsa: 
Identity added: .ssh/id_rsa (.ssh/id_rsa)

并跑得更多

ssh server.myhomepage.com
Saving password to keychain failed

它在图形窗口中要求我输入 id_rsa 的密码,我输入的密码正确,但是失败的消息。然后,它在终端中询问我是否正确输入了我的私钥密码,但仍然显示失败的消息。我使用正确的密码运行了很多次

Identity added: /Users/masi/.ssh/id_rsa (/Users/masi/.ssh/id_rsa)
[email protected]'s password: 
Permission denied, please try again.

我忘了如何正确地执行此过程。 如何才能正确地将钥匙放入钥匙链中?

答案1

在客户端,您需要密钥的私钥部分和公钥部分。

在服务器端,您需要拥有密钥的公共部分$HOME/.ssh/authorized_keys

因此,您的描述中缺少的步骤是:

  • 将公钥复制到笔记本电脑的$HOME/.ssh/id_rsa.pub
  • 将公钥添加到服务器的$HOME/.ssh/authorized_keys

答案2

我猜你使用的是 OSX Mavericks。这个苹果支持论坛消息似乎非常相关:

https://discussions.apple.com/thread/5470737?btstart=0

看起来您需要将 ssh-keygen 生成的密钥“修改”为 OSX 修补的 openssh 可以使用的形式。

有可能,情况可能是这样的:

https://apple.stackexchange.com/questions/106364/osx-ssh-agent-no-password-pasting-and-problem-with-pkcs8

如果您仍然遇到问题,请添加私钥的前三行,如下所示:

  -----BEGIN RSA PRIVATE KEY-----
  Proc-Type: 4,ENCRYPTED
  DEK-Info: AES-128-CBC,3EA2BF123CB9E67FBB094A12A82E7BAF

顺便说一句,如果您有一个名为 SSH_ASKPASS 的环境变量,我会很高兴知道。理论上,这应该是 apple ssh-add 调用图形密码提示的方式。

祝你好运!

相关内容