【问题标题】:How can we run the "ssh -keygen" command using ssh module我们如何使用 ssh 模块运行“ssh -keygen”命令
【发布时间】:2017-04-26 19:00:35
【问题描述】:

我想在服务器上创建私钥和公钥,当我手动创建时,它要求我按三次“enter”并需要选择一次“y”。我可以使用 ansible 运行相同的命令吗?如果是,如何管理我们在服务器上运行时手动按下的“输入”。任何帮助都会很好地继续进行。

下面是我试过的剧本

- hosts: localhost
  tasks:
   - name: "Run ssh commands to create new ssh keys"
     shell: ssh-keygen -f /home/dp794d/id_rsa -t rsa -q -N ""
     args:
       creates: /home/dp794d/.ssh/id_rsa
     with_lines: cat "/home/capio/ansible/pmossWipm/day1/logs/testIP.txt"

我收到以下错误 -

failed: [localhost] (item=130.6.50.132) => {"changed": true, "cmd": "ssh-keygen -f /home/dp794d/.ssh/id_rsa -t rsa -q -N \"\"", "delta": "0:00:00.248041", "end": "2017-04-26 14:41:36.361705", "failed": true, "item": "130.6.50.132", "rc": 1, "start": "2017-04-26 14:41:36.113664", "stderr": "open /home/dp794d/.ssh/id_rsa failed: Permission denied.", "stdout": "Saving the key failed: /home/dp794d/.ssh/id_rsa.", "stdout_lines": ["Saving the key failed: /home/dp794d/.ssh/id_rsa."], "warnings": []} 

【问题讨论】:

  • "stderr": "open /home/dp794d/.ssh/id_rsa failed: Permission denied." - 我认为你有文件系统权限问题,例如当 ~/.ssh 意外地被 root 拥有(并且是 0700)并且您的 playbook 以普通用户身份连接时。

标签: ansible


【解决方案1】:

看来你有两个问题

  1. APermission denied/home/dp794d/.ssh/id_rsa

    • 当运行 playbook 的用户无权访问上述文件或目录时,您会得到此信息。考虑使用 become: 来修复此上下文不匹配问题。
  2. 键盘输入

    • 我刚刚通过using expect script for automated keyboard entry 帮助了一位朋友。也许您可以修改它以满足您的需要。
    • ssh-keygen 可以使用 -N new_passphrase 选项以非交互方式运行。尝试: ssh-keygen -t rsa -N '' -f foo.rsa

注意:尝试使用单引号或双引号,直到获得所需的效果。

【讨论】:

  • 感谢您的帮助,效果很好!!真的很感激:)
  • 酷。如果这对您有所帮助,请将其标记为已解决,以便其他人可以更轻松地找到它(并且我获得了一些急需的代表点,以便我可以在此站点上进行更多互动)。
猜你喜欢
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
  • 2016-08-12
  • 2019-05-20
  • 1970-01-01
  • 1970-01-01
  • 2021-07-18
  • 2019-01-25
相关资源
最近更新 更多