【问题标题】:Ansible Where private key should be placed?Ansible 私钥应该放在哪里?
【发布时间】:2016-02-13 13:41:47
【问题描述】:

场景:
我们有 2 台服务器并使用私钥通过 ssh 进行通信
服务器 1(阶段)
服务器 2(生产)
库存文件:

[server]
server1.com
server2.com

两台服务器都有默认用户名“ubuntu”
现在我们需要将私钥放在本地机器上,服务器 1,服务器 2,在同一路径上。例如:
在本地计算机上:/tmp/key/privatekey(远程服务器 1 的私钥)
在服务器 1 上:/tmp/key/privatekey(远程服务器 2 的私钥)
在服务器 2 上:/tmp/key/privatekey(远程服务器 1 的私钥)

- name: copy archived file to another remote server using rsync.
      synchronize: mode=pull src=/home/{{ user }}/packages/{{ package_name }}.tar.gz dest=/tmp/{{ package_name }}.tar.gz archive=yes
      delegate_to: "{{ production_server }}"
      tags: release

Ansible 剧本:

ansible-playbook -i inventory --extra-vars "host=server[0] user=ubuntu" --private-key=/tmp/key/privatekey playbook.yml --tags "release"

在本地机器上执行 ansible playbook 将远程服务器 1 将服务器 1 上的存档文件复制到服务器 2。

这正如我们预期的那样工作,但太荒谬了,我们必须将私钥放在 3 台机器(本地、服务器 1、服务器 2)上的同一路径上。如果我们想将私钥放在不同的路径上怎么办?或者用户想为服务器 1 和服务器 2 使用不同的帐户/用户名?

我尝试修改库存,为服务器 2 提供用户和身份验证密钥。我将私钥放在服务器 1 的 /home/ubuntu/key/ 下:

[server]
server1.com
server2.com ansible_ssh_private_key_file=/home/ubuntu/key/privatekey    ansible_ssh_user=ubuntu

然后运行上面相同的 ansible playbook 命令。结果,服务器 1 无法远程服务器 2

如果我们想将私钥放在不同的路径上怎么办?或者用户想为服务器 1 和服务器 2 使用不同的帐户/用户名?

【问题讨论】:

    标签: ansible rsync


    【解决方案1】:

    我认为你让你的生活变得比需要的更艰难。如果我假设您使用的是用户 'ubuntu' 和标准 RSA 密钥

    1. 将您的 PPK 对放入每台机器上的 /home/ubuntu/.ssh/id_rsa 和 /home/ubuntu/.ssh/id_rsa.pub 中。这些是 sshd 守护程序将查找的 PPK 文件的默认位置。

    2. 编写剧本以将公钥(使用 authorized_keys 模块)从控制机器部署到目标机器。由于您共享密钥,因此它们都是相同的。

    3. 如果您想通过 delegate_to 在 server1 和 server2 之间进行通信,您必须为 ubuntu 用户更新 ssh_config。您在此处的选项是关闭主机密钥/已知主机检查或将适当的条目添加到 known_hosts。前者(不太安全)可以通过添加 /home/ubuntu/.ssh/config 文件来完成,后者(更安全)可以通过 ssh-keyscan 完成(参见https://serverfault.com/questions/132970/can-i-automatically-add-a-new-host-to-known-hosts

    这里的部分问题是,当您使用 delegate_to 时,我认为通常在控制机器上构建的整个 ssh 连接逻辑不会传播到委托机器。

    另外我不会把你的私钥放在 tmp 目录中

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2013-06-02
      • 2010-10-14
      • 1970-01-01
      • 2012-02-17
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-06
      相关资源
      最近更新 更多