首页 > 代码库 > ansible推送ssh公钥

ansible推送ssh公钥

ansible推送ssh公钥

1 管理机器少的情况下可以直接推送过去

使用 ssh-keygen -t rsa生成密钥对,

!miyaoQQ截图20141225124030.png!


id_rsa 私钥,保留在主机,id_rsa.pub是公钥需要推送到管理机器上,并重命名为authorized_keys文件

推送到远程机器  ssh-copy-id -i ~/.ssh/id_rsa.pub username@[ip,hostname]


2 机器多的情况下,使用ssh-copy-id方法有些费时,使用ansible-playbook推送ymal,这里使用到了authoried_keys模块,可以参考 http://docs.ansible.com/authorized_key_module.html


同时hosts中内容

!neirongQQ截图20141225125319.png!


<pre>

[root@master ~]# ansible-playbook /etc/ansible/rsync_key.ymal -f 10

</pre>

出现 

<pre>

ERROR: authorized_key is not a legal parameter at this level in an Ansible Playbook

</pre>


可能是ymal语言格式问题,或者rsync_key.ymal问题,在排错········


修改rsync_key.ymal内容


  1 # Using alternate directory locations:

  2 - hosts: test89

  3   user: root

  4   tasks:

  5    - name: ssh-copy

  6      authorized_key: user=cuibo key="{{ lookup(‘file‘, ‘/root/.ssh/id_rsa.pub‘) }}"

  7      tags:

  8        - sshkey


最后,ssh公钥推送成功。

ansible推送ssh公钥