Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssh 我需要为每台服务器生成一个私钥,还是可以在它们之间传播私钥?_Ssh_Ssh Keys_Private Key_Public Key - Fatal编程技术网

Ssh 我需要为每台服务器生成一个私钥,还是可以在它们之间传播私钥?

Ssh 我需要为每台服务器生成一个私钥,还是可以在它们之间传播私钥?,ssh,ssh-keys,private-key,public-key,Ssh,Ssh Keys,Private Key,Public Key,假设我有多台计算机和多台服务器 一台计算机有一个私钥,它的公钥分布在所有服务器之间 我是否可以将我的私钥从这台计算机复制到其他计算机以连接到服务器,或者我必须在每台计算机上生成私钥,然后在每台服务器上授权它们的公钥 如果没有,有没有更好的方法可以节省我一些时间 谢谢。这似乎是一个问题,ssh代理就是答案 假设有一台机器当前可以通过控制台访问,称为console box,还有一些其他机器remote-box-1、remote-box-2。。。遥控箱 首先在控制台框上生成一个密钥 (console-

假设我有多台计算机和多台服务器

一台计算机有一个私钥,它的公钥分布在所有服务器之间

我是否可以将我的私钥从这台计算机复制到其他计算机以连接到服务器,或者我必须在每台计算机上生成私钥,然后在每台服务器上授权它们的公钥

如果没有,有没有更好的方法可以节省我一些时间


谢谢。

这似乎是一个问题,ssh代理就是答案

假设有一台机器当前可以通过控制台访问,称为console box,还有一些其他机器remote-box-1、remote-box-2。。。遥控箱

首先在控制台框上生成一个密钥

(console-box)$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
然后将公钥分发到远程boxen

(console-box)$ eval $(ssh-agent) 
(console-box)$ ssh-add ~/.ssh/id_rsa
Enter passphrase for ~/.ssh/id_rsa: 
Identity added: ~/.ssh/juanje_rsa
(console-box)$ ssh -A remote-box-1
(remote-box-1)$ ssh -A remote-box-2
 ...
(remote-box-n)$ ssh -A console-box

一旦在控制台上设置了代理并激活了代理转发选项,您就可以在许多开发和部署框之间自由使用ssh/scp,而无需输入密码。

这似乎是一个问题,ssh代理就是答案

假设有一台机器当前可以通过控制台访问,称为console box,还有一些其他机器remote-box-1、remote-box-2。。。遥控箱

首先在控制台框上生成一个密钥

(console-box)$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
然后将公钥分发到远程boxen

(console-box)$ eval $(ssh-agent) 
(console-box)$ ssh-add ~/.ssh/id_rsa
Enter passphrase for ~/.ssh/id_rsa: 
Identity added: ~/.ssh/juanje_rsa
(console-box)$ ssh -A remote-box-1
(remote-box-1)$ ssh -A remote-box-2
 ...
(remote-box-n)$ ssh -A console-box

一旦在控制台上设置了代理并激活了代理转发选项,您就可以在许多开发和部署框之间自由地使用ssh/scp,而无需输入密码。

要理解这个问题,最好了解一下非对称加密。在非对称加密中,您有一个公钥和一个私钥。他们一起组成一对钥匙。公钥用于加密。然后使用私钥进行解密。注意:私钥只能解密使用匹配公钥加密的文件

现在我们知道,要使一切正常工作,需要2个文件

我是否可以将我的私钥从这台计算机复制到其他计算机以连接到>服务器,或者我必须在每台计算机上生成私钥,然后在每台服务器上授权>它们的公钥

答案很简单,是的。您可以将公钥或私钥复制到任何计算机,并与任何操作系统一起使用。只要您拥有公钥,就可以加密消息。如果您有私钥,那么您可以在以后解密这些文件。这只是计算机上存在文件的问题

如果没有,有没有更好的方法可以节省我一些时间


虽然没有技术上的理由不能每次都复制和重用同一个密钥对,但这在安全性方面不是一个好的做法。例如,如果您有一个由100台服务器组成的森林,所有服务器共享相同的密钥对,如果1台服务器受到攻击或黑客攻击,那么其余99台服务器也会受到攻击。如果您在每台服务器上都有一个唯一的密钥对,那么它们需要对所有100台服务器进行折衷,才能获得相同的效果。每次使用唯一密钥对的简单行为会使攻击者的工作量增加几个数量级。

要理解这个问题,最好了解一点非对称加密。在非对称加密中,您有一个公钥和一个私钥。他们一起组成一对钥匙。公钥用于加密。然后使用私钥进行解密。注意:私钥只能解密使用匹配公钥加密的文件

现在我们知道,要使一切正常工作,需要2个文件

我是否可以将我的私钥从这台计算机复制到其他计算机以连接到>服务器,或者我必须在每台计算机上生成私钥,然后在每台服务器上授权>它们的公钥

答案很简单,是的。您可以将公钥或私钥复制到任何计算机,并与任何操作系统一起使用。只要您拥有公钥,就可以加密消息。如果您有私钥,那么您可以在以后解密这些文件。这只是计算机上存在文件的问题

如果没有,有没有更好的方法可以节省我一些时间


虽然没有技术上的理由不能每次都复制和重用同一个密钥对,但这在安全性方面不是一个好的做法。例如,如果您有一个由100台服务器组成的森林,所有服务器共享相同的密钥对,如果1台服务器受到攻击或黑客攻击,那么其余99台服务器也会受到攻击。如果您在每台服务器上都有一个唯一的密钥对,那么它们需要对所有100台服务器进行折衷,才能获得相同的效果。每次使用唯一密钥对的简单行为会使攻击者的工作量增加几个数量级。

您能给我们提供更多的上下文吗?一般来说,共享私钥通常被认为是不好的做法,但不了解questio中的密钥
n或基础设施,这是无法帮助的。你管理所有这些机器吗?这些钥匙是干什么用的?很抱歉没有信息。我管理所有的机器,我是唯一管理它们的人。事实上,它们是我用来主持大多数项目的几个虚拟机。密钥用作服务器上ssh/scp的表单,而不使用纯文本密码。对不起,你的无知,但是你能告诉我为什么共享私钥总是被认为是不好的做法吗?非常感谢。我建议用附加信息编辑您的原始问题。简单地说,因为私钥应该是私有的——每台机器通常都应该有自己的密钥,以便可以根据需要识别/禁用它。就我个人而言,我建议将此发布给超级用户,而不是更基于编程的。感谢@Liath的帮助,我刚刚找到了一个关于SU的问题的很好的解释。我想我搜索得不够努力!你能再给我们一点背景吗?一般来说,共享私钥通常被认为是不好的做法,但如果不了解更多有关密钥或基础设施的信息,就无法提供帮助。你管理所有这些机器吗?这些钥匙是干什么用的?很抱歉没有信息。我管理所有的机器,我是唯一管理它们的人。事实上,它们是我用来主持大多数项目的几个虚拟机。密钥用作服务器上ssh/scp的表单,而不使用纯文本密码。对不起,你的无知,但是你能告诉我为什么共享私钥总是被认为是不好的做法吗?非常感谢。我建议用附加信息编辑您的原始问题。简单地说,因为私钥应该是私有的——每台机器通常都应该有自己的密钥,以便可以根据需要识别/禁用它。就我个人而言,我建议将此发布给超级用户,而不是更基于编程的。感谢@Liath的帮助,我刚刚找到了一个关于SU的问题的很好的解释。我想我搜索得不够努力!