首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法执行的known_hosts任务

无法执行的known_hosts任务
EN

Server Fault用户
提问于 2016-04-27 14:23:12
回答 3查看 3.3K关注 0票数 2

我是ansible的新手,我创建了小型ansible-playbook,它将github主机密钥添加到每个服务器的known_hosts中:

代码语言:javascript
复制
---
- hosts: all
  tasks:
  - name: Add github to ssh known-hosts
    known_hosts:
     name: "TS_github"
     key: "github.com,192.30.252.129 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=="

但是,由于某些原因,这个剧本对于每一个错误的主机都失败了:

代码语言:javascript
复制
fatal: [clusterapp-1]: FAILED! => {"changed": false, "cmd": "/usr/bin/ssh-keygen -F TS_github -f /tmp/tmpgROT5p", "failed": true, "msg": "", "rc": 1, "stderr": "", "stdout": "", "stdout_lines": []}

由于某些原因,它使用/tmp/tmpgROT5p作为密钥文件,这显然是错误的。正如安利多中所述,known_hosts模块应该使用“(Homedir)+/..ssh/知名_known_hosts”,但它没有发生。

我开始使用的剧本如下:

代码语言:javascript
复制
 ansible-playbook -i hosts github_keys.yml

我还试着用-vvv键开始游戏,但没有得到任何有用的信息。

我的ansible.cfg文件:

代码语言:javascript
复制
[defaults]
transport=ssh
host_key_checking=false
EN

回答 3

Server Fault用户

发布于 2016-07-19 17:23:25

name应该是主机的名称。

所以在你的例子中,名字需要是github.comkey应该是github.com,192.30.252.129 ssh-rsa AAAAB3NzaC1yc2EAA...

代码语言:javascript
复制
---
- hosts: all
  tasks:
  - name: Add github to ssh known-hosts
    known_hosts:
     name: github.com
     key: "github.com,192.30.252.129 ssh-rsa AAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=="
票数 4
EN

Server Fault用户

发布于 2016-10-04 16:58:36

作为另一种选择,您可以为特定用户使用一个. .ssh/config文件来忽略known_hosts,如果您只是试图避免被提示,这会影响您的安全需求。

主机* StrictHostKeyChecking no

票数 1
EN

Server Fault用户

发布于 2019-08-28 19:22:23

一种可能的解决办法是使用块文件。

代码语言:javascript
复制
  - name: Add github to ssh known-hosts
    blockinfile:
      path: ~/.ssh/known_hosts
      block: "github.com,192.30.252.129 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=="
      marker: "# {mark} github"

当然,使用known_hosts是推荐的方法,但是这个方法运行得很好。也适用于管理/etc/主机

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/773293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档