如何通过 HEAT 模板在 VM 之间进行 SSH 密钥交换(不仅在控制节点和 VM 之间)
How to do SSH key exchange between VMs via HEAT template (Not only between Control node and VMs)
我是openstack的新手。我正在使用 HEAT 模板创建堆栈。在 yaml 文件中,我将密钥名称提到为
parameters: # Common parameters
key_name: my-key-pair
创建堆栈后,我可以在没有密码的情况下从我的控制节点通过 ssh 连接到所有虚拟机,成功如下:
ssh -i /root/my-key-pair.pem
user@instanceip
我的要求是,同样我也需要在虚拟机之间进行ssh。就像我在 ControlNode 和 VM 之间所做的那样,我想在没有密码的情况下从 VM1 到 VM2 执行 ssh。
如果我将 pem 文件复制到 VM1,那么我可以在没有密码的情况下从该 VM1 执行 ssh 到其他 VMS,例如
ssh -i /VM1-home/my-key-pair.pem
user@otherinstanceip
但是,有没有一种方法可以在堆栈创建过程中完成?这样,在通过热模板创建堆栈后,我可以立即从任何实例通过 ssh 连接到其他实例?
有人可以帮忙吗
谢谢,
苏贝斯
你可以在没有 HEAT 的情况下做到这一点。
您应该可以使用 ssh 代理转发。
步骤:
在后台启动 ssh-agent。
eval "$(ssh-agent -s)"
将您的密钥添加到代理
ssh-add /root/my-key-pair.pem
然后ssh到第一台主机,你现在应该可以在服务器之间跳转了。
使用 HEAT 的方法是将该 pem 文件放置在创建的实例上的正确位置,这应该可以通过个性函数实现
个性:{"/root/my-key-pair.pem": {get_file: "pathtopemfilelocaly"}}
我是openstack的新手。我正在使用 HEAT 模板创建堆栈。在 yaml 文件中,我将密钥名称提到为
parameters: # Common parameters
key_name: my-key-pair
创建堆栈后,我可以在没有密码的情况下从我的控制节点通过 ssh 连接到所有虚拟机,成功如下:
ssh -i /root/my-key-pair.pem user@instanceip
我的要求是,同样我也需要在虚拟机之间进行ssh。就像我在 ControlNode 和 VM 之间所做的那样,我想在没有密码的情况下从 VM1 到 VM2 执行 ssh。
如果我将 pem 文件复制到 VM1,那么我可以在没有密码的情况下从该 VM1 执行 ssh 到其他 VMS,例如
ssh -i /VM1-home/my-key-pair.pem user@otherinstanceip
但是,有没有一种方法可以在堆栈创建过程中完成?这样,在通过热模板创建堆栈后,我可以立即从任何实例通过 ssh 连接到其他实例?
有人可以帮忙吗
谢谢, 苏贝斯
你可以在没有 HEAT 的情况下做到这一点。
您应该可以使用 ssh 代理转发。
步骤:
在后台启动 ssh-agent。
eval "$(ssh-agent -s)"
将您的密钥添加到代理
ssh-add /root/my-key-pair.pem
然后ssh到第一台主机,你现在应该可以在服务器之间跳转了。
使用 HEAT 的方法是将该 pem 文件放置在创建的实例上的正确位置,这应该可以通过个性函数实现
个性:{"/root/my-key-pair.pem": {get_file: "pathtopemfilelocaly"}}