关于linux上的ssh密钥
对于在linux上使用私钥/公钥,我没有什么疑问 假设我有两个linux框关于linux上的ssh密钥,linux,ssh,key,Linux,Ssh,Key,对于在linux上使用私钥/公钥,我没有什么疑问 假设我有两个linux框A和B 我想从任何计算机使用无密码登录到B 于是我就这么做了 ssh gen-t rsa并生成了两个文件 id\u rsa和id\u rsa.pub 然后我将id\u rsa.pub复制到B~/.ssh/A\u id\u rsa.pub,然后 cat A\u id\u rsa.pub>>授权密钥 现在我有这些问题 假设我有另一台计算机C,其中我还想进行无密码登录,但我想使用密钥短语来保护私钥。因此,我是否可以使用不同名称的
A
和B
我想从任何计算机使用无密码登录到B
于是我就这么做了
ssh gen-t rsa
并生成了两个文件
id\u rsa
和id\u rsa.pub
然后我将id\u rsa.pub
复制到B
~/.ssh/A\u id\u rsa.pub
,然后
cat A\u id\u rsa.pub>>授权密钥
现在我有这些问题
C
,其中我还想进行无密码登录,但我想使用密钥短语
来保护私钥
。因此,我是否可以使用不同名称的ssh gen-t rsa生成另一个密钥并使用该密钥,或者我必须删除以前的密钥键从B
到A
或始终从A
到B
私钥
将始终仅保留在主机上?我看到AWS提供了用于登录的私钥。那为什么呢。B用于将A
公钥放入B
某人需要访问B
。这在第一次是不可能的。那么这是否意味着我们可以使用公钥或私钥登录在一两行中: 密钥的工作原理类似(非常粗略):您需要公钥来解密由私钥加密的内容,反之亦然。更准确地说,我们有更好的信息开始 所以要回答这些问题:私钥通常不会绑定到计算机。您可以将私钥从(比如)A复制到C,并可以使用它从C登录 您可以在单个主机上生成多个密钥,每组主机一个密钥对。类似地,您可以从多个主机生成密钥,每个主机将其密钥发布到目标计算机的(本例中为B)“授权密钥”文件
理想情况下,私钥应该尽可能保密。虽然SSH或密钥管理不会强制将密钥放在一台计算机上,但作为最佳实践,它应限于单个系统。话虽如此,据我所知,实际上没有任何东西可以阻止复制私钥,比如备份或迁移到新系统。换句话说,私钥文件就像密码一样,它可以从任何系统直接用于登录。我可以在附加到授权密钥后删除公钥吗,或者它需要在那里。所以这意味着除了在主机上之外,我们再也不需要私钥了。如果这是真的,那么为什么系统会生成它?是的,您可以在公钥位于授权密钥中后删除它,但我会保留它,以防您想在其他机器上重用它。您需要了解,公钥加密是基于这样一个事实,即任何人都可以知道公钥,但只有在私钥已知的情况下才有用。由于只有计算机A知道私钥,因此只有计算机A能够与计算机B通信,即使其他计算机具有公钥。为了安全通信,私钥必须保密,因此它被称为“私钥”。因此,这意味着如果我将计算机A的私钥复制到
C
,那么C
可以与B
通信?此外,我可以在.ssh文件夹中使用任意名称拥有任意多个密钥。但是,系统如何知道哪个私钥是哪个公钥呢?是的,这是真的,但这样做是有危险的。首先,您需要确保使用安全通道(如ssh)将私钥复制到计算机C,或者使用闪存驱动器进行物理复制,不要发送电子邮件,否则,密钥可能会被泄露。其次,如果你也开始将私钥传播到其他计算机,那么如果该密钥在一台计算机上被泄露,你需要替换所有计算机上的密钥。正如你在原始帖子中提到的,一个好的做法是用密码短语加密私钥本身。这为您的密钥增加了另一层安全性并减轻了攻击。