我正在关注本教程:https://help.github.com/articles/generating-ssh-keys
在步骤2中,生成RSA密钥,第一个代码块的第四行是ssh-add命令
ssh-add id_rsa
下一步显示创建密码短语的请求。
当我这样做时,我在第一段代码的第3行之后立即提示输入密码,其中包含
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
问题:我应该在ssh-add id_rsa命令之前或之后提示输入密码吗?
Appended是我的shell日志
-------------------------------------
Taras-MacBook-Air:~ tlroys$ ssh-keygen -t rsa -C "tlroys@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/tlroys/.ssh/id_rsa):
Created directory '/Users/tlroys/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/tlroys/.ssh/id_rsa.
Your public key has been saved in /Users/tlroys/.ssh/id_rsa.pub.
The key fingerprint is:
[REDACTED] tlroys@gmail.com
The key's randomart image is:
+--[ RSA 2048]----+
|+.. |
------------------------------------
干杯,Tara Roys
PS。我对ssh的朦胧理解告诉我,拥有密码的原因是加密你的私钥,这样就不能简单地复制和使用其他地方。在我的脑海中,ssh-add id_rsa命令是安全和个人助理之间的交叉。您将钥匙放在保险箱中,并告诉您的私人助理一次密码。然后,她使用该密码解密您的所有密钥,代表您使用它们,但她不知何故免受强制攻击,并且不会告诉其他人您的密码是什么。
我有意义的是,您将创建一个密码来加密密钥。然后,您将把钥匙交给私人助理。然后,您可以告诉她密码,以便她可以使用密钥。她不会告诉别人。
但是,本教程似乎暗示您创建了未加密的密钥,然后将其提供给安全存储它们的个人助理,并告诉您必须编写密码才能使用它们。
哪种心理模型正确?
更新:看来如果我在生成密钥对时为私钥创建密码,代理也需要我输入密码。如果我不创建密码,代理不需要我输入密码。如果我输入密码,则表示它已加密,并且为了使用密钥,代理需要知道密码。如果密钥未加密,代理可以使用它而不会向我询问任何其他内容。
简而言之,github教程通过在标准中间插入ssh-add id_rsa命令来跳过一个至关重要的步骤,从而创建一个密钥对工作流。这是一个错字还是我错过的东西?敬请关注!
更新:github教程跳过了一步。我向Github提出了一个帮助请求,然后他们给我发了电子邮件,说道
感谢你指出这一点,我很抱歉这个混乱。看起来它实际上是我们文档中的步骤顺序的问题,而不是您对SSH的理解:)我已将此信息传递给我们的文档团队以查看。
在输入密码后,
ssh-add id_rsa
步骤应在步骤2结束时出现。运行该步骤应该再次提示您输入密码。这会将您的id_rsa身份文件保存到ssh-agent,您不需要再次重新输入密码。