ssh - Ansible:更改 SSH key

标签 ssh ansible ssh-keys

我有多个服务器的 list 。使用 PEM key 文件保护对这些服务器的 SSH 访问。我想定期更改我的服务器使用的 PEM key 。所以,我想用 Ansible 做以下事情:

  • 生成新的 PEM key 文件
  • 对于我库存中的每台服务器,使用旧 PEM key 文件
  • 连接到服务器
  • 安装新的 PEM key 文件
  • 测试以确保使用新 key 的 SSH 有效而旧 key 无效

  • 通过 Ansible 执行此操作的最佳方法是什么?

    最佳答案

    你应该把它分成三个剧本。

    第一个生成新的 PEM key 。这将在本地运行。见:https://docs.ansible.com/ansible/playbooks_delegation.html#local-playbooks

    第二个将进行推出。因此它将 key 复制到所有服务器。您可以使用authorized_keycopy取决于您喜欢的工作流程。但那是另一个问题。

    然后第三步将是一个测试手册,可能带有断言语句或仅使用 ping 来确保连接有效。

    当您拥有所有这些剧本时,将它们组合成一个单一的包含或以正确的顺序将这三个剧本添加到一个剧本中。见:https://docs.ansible.com/ansible/playbooks_intro.html

    关于ssh - Ansible:更改 SSH key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36778061/

    相关文章:

    dictionary - Ansible 过滤器将一个字典中的特定键提取到另一个字典中

    c++ - 使用 libssh 链接期间 undefined symbol

    unit-testing - 在 Go 中对 SSH 客户端进行单元测试

    bash - ssh-在初始连接上执行时,echo $ SSH_CLIENT返回空

    ansible - 在ansible中,有没有办法注册角色的结果?

    amazon-web-services - 如何在 Terraform 中创建 SSH key ?

    git - 无法在 Windows 8 嵌入式上通过 git bash chmod SSH key

    linux - 如何在ansible中使用断言模块比较整数?

    git - GitHub:致命: 'origin'似乎不是git存储库

    git pull 遇到 kex_exchange_identification : Connection closed by remote host