1

据我所知,我唯一做的就是修改我的~/.ssh/known_hosts文件,因为我使用桥接网络适配器设置了一个新的 Parallels VM,并且客户端 Linux 获得了一个本地 LAN IP,它与已知主机文件中的先前条目相匹配(从而阻止我连接到它)。

(我不确定这是否是原因,但是)我编辑了我已知的主机文件,之后的某个时间,当推送到 git 时,SSH 开始要求我提供私钥的密码,但它从未完成过那一点(自二月份设置机器以来)。

我现在意识到我至少应该ssh带着一个详细的标志跑来看看发生了什么,从那以后我已经了解了ssh-add所有ssh-agent这些,我猜ssh-add -l可能已经告诉我它停止“跟踪”它或其他什么,所以我可以用“重新添加”它ssh-add

我的问题是,手动编辑已知主机文件是否可能已触发ssh-agent停止保存私钥密码作为安全措施?如果没有,是否有什么会触发这种情况,我可能在使用 git 进行任何推送之间无意中做了什么?

我所做的是:

  • 验证我的是否~/.ssh/id_rsa已加密。对为什么我从来没有收到提示输入密码短语感到有些困惑(几乎不记得设置过密码,但我可能做到了)
  • 解密它openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa
  • 完成了我的推动
  • 发现了ssh-agent,想,嗯,解释了为什么我从来没有被提示输入密码,我应该像现在一样设置它,因为我的文件现在是纯文本的
  • 用它加密ssh-keygen -p -f ~/.ssh/id_rsa

我有点惊讶地发现,在我使用最后一个命令重新加密私钥后,它不再要求我提供私钥加密密码。ssh-add -l现在报告一个条目(提到那个文件,~/.ssh/id_rsa)。我只希望我ssh-add -l在解密私钥之前运行。

一切都还是犹太洁食吗?我被黑了吗?

4

1 回答 1

3

我也发生了同样的事情,同样担心被黑客入侵。我仍然不知道到底发生了什么,这令人不安。

无论如何,每当我突然被要求输入密码时,我都会这样做:

$ eval `ssh-agent -s`
$ ssh-add

它会再问我一次我的密码,然后就是这样。

于 2013-10-02T11:27:49.767 回答