You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过HEAT模板实现VM间SSH密钥交换(不限于控制节点与VM)

实现OpenStack VM之间的无密码SSH访问

嘿,我来帮你搞定VM之间无密码SSH的问题!既然你已经搞定了控制节点到VM的无密码访问,那VM之间的配置思路其实很相似——核心就是让所有VM共享同一套密钥对,这样每个VM都能凭私钥直接登录其他VM。下面给你两种方案,按需选择:

方案一:通过Heat模板自动配置(推荐,适合新创建堆栈)

如果还没创建堆栈,或者愿意重新部署,直接在Heat模板里配置,让VM创建后自动具备互访权限,一步到位:

  1. 确保模板已指定密钥对
    你已经在参数里加了key_name: my-key-pair,这一步没问题,它会自动把该密钥对的公钥写入每个VM的/home/user/.ssh/authorized_keys。

  2. 添加user_data注入私钥
    在你的OS::Nova::Server资源定义中,加入user_data段,把控制节点上的私钥(/root/my-key-pair.pem)复制到VM的用户目录下,同时设置正确权限:

    resources:
      vm_instance:
        type: OS::Nova::Server
        properties:
          # 其他配置(镜像、 flavor、网络等)
          key_name: { get_param: key_name }
          user_data: |
            #!/bin/bash
            # 创建.ssh目录(如果不存在)
            mkdir -p /home/user/.ssh
            # 写入控制节点的私钥内容(替换成你实际的私钥文本)
            cat > /home/user/.ssh/id_rsa << EOF
            -----BEGIN RSA PRIVATE KEY-----
            这里粘贴/root/my-key-pair.pem里的完整私钥内容
            -----END RSA PRIVATE KEY-----
            EOF
            # 设置安全权限(必须是600,否则SSH会拒绝)
            chmod 600 /home/user/.ssh/id_rsa
            chown user:user /home/user/.ssh/id_rsa
    

    注意:私钥明文写在模板里不够安全,你也可以把私钥作为Heat参数传入,或者用OS::Nova::KeyPair资源自动生成新的密钥对,避免硬编码。

  3. 部署堆栈
    重新创建堆栈后,所有VM都会自动拥有私钥,直接就能无密码SSH到其他VM了。

方案二:手动配置(适合已创建好的VM)

如果不想重新部署堆栈,手动操作也很简单:

  1. 从控制节点登录到任意一台VM(比如VM1)

    ssh -i /root/my-key-pair.pem user@vm1-ip
    
  2. 复制控制节点的私钥到VM1
    在VM1里执行命令,把控制节点的私钥复制过来:

    scp -i /home/user/.ssh/id_rsa root@控制节点IP:/root/my-key-pair.pem /home/user/.ssh/id_rsa
    

    (如果scp提示权限问题,也可以直接在VM1里手动创建id_rsa文件,把控制节点的私钥内容粘贴进去)

  3. 设置私钥权限
    必须把私钥权限改成600,否则SSH会报错:

    chmod 600 /home/user/.ssh/id_rsa
    chown user:user /home/user/.ssh/id_rsa
    
  4. 测试VM间访问
    现在从VM1直接SSH到其他VM就行:

    ssh user@vm2-ip
    

    不需要指定私钥,因为SSH会自动用~/.ssh/id_rsa。

关键注意事项

  • 确保所有VM的SSH用户一致(比如你用的user),如果用户不同,要调整文件路径和权限。
  • 检查安全组规则:允许VM所在子网内的22端口入站流量,否则VM之间连不上SSH。
  • 私钥权限必须是600,目录权限是700,这是SSH的硬性要求。

内容的提问来源于stack exchange,提问作者Subeesh KK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:19:05