据我所知,我唯一做的就是修改我的~/.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
在解密私钥之前运行。
一切都还是犹太洁食吗?我被黑了吗?