我有一些关于为SSH访问生成密钥的问题:
(1)假设有两台计算机运行ssh服务器服务,并且我在计算机A上生成了一对密钥文件,并将公共文件复制到计算机B.这是真的,这只是一个单向密钥:我们只给了计算机访问计算机B的权限,没有授予计算机B访问计算机A的权限? 如果我现在想从计算机B到计算机A ssh,我必须生成计算机B上的另一对密钥文件,并将公共文件复制到计算机A?
(2)如果我想将一台本地计算机连接到多台远程服务器,是否只在本地生成一对公用密钥文件,并将同一个公共文件复制到远程服务器,或者生成不同的在本地为不同的远程服务器上的密钥文件?
(3)如果我想将多台本地计算机连接到一台远程服务器上,将公用文件从不同的本地计算机复制到远程服务器时,是将它们合并成一个authorized_keys文件还是将它们存储在不同的authorized_keys文件中?
(4)如果有多台服务器通过NFS共享相同的文件系统,如何生成密钥并安排从一台服务器访问的密钥文件? 还如何仍然生成密钥和安排本地计算机的密钥文件访问任何服务器?
上面所有的机器都是Linux的。请在回复中提供示例和命令,以便我能更好地理解如何解决这些问题。
感谢致敬!
是的,情况就是这样。 具有私人钥匙的机器可以对公共一半的人进行authentication。 您当然可以在两台或多台机器上拥有相同的私钥,但是如果您没有密钥的string密码,则不应该对您不能100%信任的服务器(如外部共享服务器)执行此操作无论如何,不build议使用无密码键)。
在许多服务器上使用相同的公共密钥是很常见的,就像使用公钥+私钥签名电子邮件一样(每个人通常使用相同的公钥来检查来自你的私钥的签名) – 不是没有关于不可用的。 例如,我的钥匙@ homemachine可以login我的家庭服务器,我的远程服务器和几个虚拟机。 虽然我有一个不同的键@ homeserver(因为上面的注释1),但是也可以用来在别处select帐户来validation我。 也就是说,如果你愿意,没有任何东西可以阻止你为每个用户账户拥有许多私钥。
给定目标帐户的所有授权密钥都存在于一个authorized_keys文件中。
那要看。 你的主目录,或者甚至是共享(NFS)资源上的一切?
http://novosial.org/openssh/publickey-auth/是在回答一个相关问题之后,在快速search之后提出的一个资源,虽然它可能没有涵盖你的最后一点,但它在这里也很有用。 假设你使用的是OpenSSH(你不太可能),示例命令将与Linux相关。
(1)假设有两台计算机运行ssh服务器服务,并且我在计算机A上生成了一对密钥文件,并将公共文件复制到计算机B.这是真的,这只是一个单向密钥:我们只给了计算机访问计算机B的权限,没有授予计算机B访问计算机A的权限?
是。
如果我现在想从计算机B到计算机A ssh,我必须生成计算机B上的另一对密钥文件,并将公共文件复制到计算机A?
是的(尽pipe你可以使用与上面相同的密钥文件,如果A和B完全互相信任)。
(2)如果我想将一台本地计算机连接到多台远程服务器,是否只在本地生成一对公用密钥文件,并将同一个公共文件复制到远程服务器,或者生成不同的在本地为不同的远程服务器上的密钥文件?
虽然两者都可以工作,但没有理由使用多个密钥文件。 所以你的第二个select。
(3)
是的,您将所有密钥组合到一个authorized_keys文件中。
(4)如果有多台服务器通过NFS共享相同的文件系统,如何生成密钥并安排从一台服务器到另一台服务器访问的密钥文件? 还如何仍然生成密钥和安排本地计算机的密钥文件访问任何服务器?
NFS对于SSH并不重要; 该文件必须在正确的位置。 生成密钥相同。
'A ”生成的一个密钥对可用于login到其他几台计算机。 A的'.ssh'目录复制到另一台计算机'B' ,然后从那里使用它(login到您允许通过这些凭据从“ A'访问的所有计算机)。 'A'上'A'密钥对可以用来访问尽可能多的远程机器,通过授权每个机器上的公钥来访问。 'authorized_keys'文件可以有多个授权行(公钥),每行一个。 'home'空间时(因此在您login时共享'.ssh'目录本身),您只需要一个密钥对就可以跨该计算机池共享访问权限。 把公钥放在这个'.ssh '的authorized_keys文件中。 一些参考,
更新:
'authorized_keys '文件将用于RSA密钥和 'authorized_keys2 '文件也许。