Ansible推送ssh秘钥

一、系统环境和安装软件版本
1),系统安装
[[email protected] ~]# cat /etc/issue
CentOS release 6.5 (Final)
[[email protected] ~]# uname -r
2.6.32-431.el6.x86_64
2)4台主机Ansible(192.168.0.22)另外3台主机IP分别是(192.168.0.24,192.168.0.156和192.168.0.157)
3)安装YUM源
[[email protected] ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
[[email protected] ~]# yum install ansible -y
[[email protected] ~]# ansible --version
ansible 2.4.2.0
config file = /etc/ansible/ansible.cfg
configured module search path = [u‘/root/.ansible/plugins/modules‘, u‘/usr/share/ansible/plugins/modules‘]
ansible python module location = /usr/lib/python2.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]
二、在Ansible主机上配置
1)在推送主机上做ssh秘钥
[[email protected] .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
a3:08:ab:02:bf:7b:12:7d:d9:8f:9c:a9:67:38:53:a1 [email protected]
The key‘s randomart image is:
+--[ RSA 2048]----+ . .. +S. . .o..E.o. .......+ = ..o . + B . o o= .*

+-----------------+
2)查看生成的秘钥。
[[email protected] .ssh]# ls -a
. .. id_rsa id_rsa.pub
3)在Ansible上配置hosts
[[email protected] ansible]#vim hosts
在内容最后加上如下内容:
[test]
192.168.0.24 ansible_user=root ansible_ssh_pass="hwg123"
192.168.0.156 ansible_user=root ansible_ssh_pass="hwg123"
192.168.0.157 ansible_user=root ansible_ssh_pass="hwg123"
4)接着创建push.ssh.ymal脚本
[[email protected] ansible]# cat push.ssh.ymal
#Using alternate directory locations:

  • hosts: test
    user: root
    tasks:

    • name: ssh-copy
      authorized_key:
      user=root
      key="{{ lookup(‘file‘ ,‘/root/.ssh/id_rsa.pub‘) }}"
      tags:

      • sshkey
        5)需要修改ansible.cfg的#host_key_checking= False取消注释
        [[email protected] ansible]# vim ansible.cfg
        host_key_checking = False
        三、最后运行push.ssh.ymal
        [[email protected] ansible]# ansible-playbook push.ssh.ymal

PLAY [test] ****

TASK [Gathering Facts] *****
ok: [192.168.0.24]
ok: [192.168.0.157]
ok: [192.168.0.156]

TASK [ssh-copy] ****
changed: [192.168.0.157]
changed: [192.168.0.156]
changed: [192.168.0.24]

PLAY RECAP *****
192.168.0.156 : ok=2 changed=1 unreachable=0 failed=0
192.168.0.157 : ok=2 changed=1 unreachable=0 failed=0
192.168.0.24 : ok=2 changed=1 unreachable=0 failed=0

好了,Ansible主机端使用ssh [email protected] 看看需要密码不,不需要证明配置正确。

原文地址:http://blog.51cto.com/hwg1227/2093803

时间: 2024-10-26 06:33:18

Ansible推送ssh秘钥的相关文章

ansible 批量推送ssh秘钥

ansible 批量推送ssh秘钥 参考:http://docs.ansible.com/ansible/authorized_key_module.html # vi /etc/ansible/hosts [caoguo] 192.168.88.154 ansible_ssh_user=root ansible_ssh_pass=toor ansible_ssh_port=22 [[email protected] ansible]# ssh-keygen Generating public/

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 [email protected][ip,hostname] 2 机器多的情况下,使用ssh-copy-id方法有些费时,使用ansib

ssh秘钥交换详解与实现 diffie-hellman-group-exchange-sha

ssh的DH秘钥交换是一套复合几种算法的秘钥交换算法.在RFC4419中称为diffie-hellman-groupX-exchange-shaX 的算法(也有另一种单纯的 rsaX-shaX 交换算法).本文就以diffie-hellman-group-exchange-sha256为例,详尽地讲解整个完整的秘钥交换过程. 笔者在RFC上和网上看了很久,也只是做了一个大致了解,对实现的帮助不大.实际在实现过程中,有太多的细节需要注意,在很多细节的分歧中,需要自己抱着勇气去测试.(原谅我不看op

GIT文件的三种状态 & Git SSH秘钥问题

一:GIT文件的三种状态 1-- 在目录下新建README.txt文件,接着,使用"git status"查看文件状态,如 可以看到,Git友好的标示出README.txt为"Untracked files",并且提示使用"git add <file>..."的命令将文件包含到待提交清单中. 2-- 按照提示,使用"git add README.txt"命令,然后,使用"git status"查

ssh秘钥登录

自己在网上找ssh秘钥登录的教程,发现写的都不符合我迷糊的那一点:然后自己查man帮助. 刚开始的时候不知道Linux如何充当SSH client,然后自己已解决,解决见下 本地生成密钥(public key 和 private key).其中,public key存放在欲登录的服务器上,而privatekey为特定的客户机所持有. 当客户机向服务器发出建立安全连接的请求时,首先发送自己的public key,如果这个public key是被服务器所允许的,服务器就发送一个经过public ke

【github】添加 ssh 秘钥

1 生成秘钥 打开shell 备注: [email protected] 为邮箱地址 ssh-keygen -t rsa -C "123@example.com" 此处选Y ,其他都是一路回车 2 查看 cat ~/.ssh/id_rsa.pub 把此处的秘钥复制.放到 github ssh秘钥里边即可 原文地址:https://www.cnblogs.com/richerdyoung/p/9208350.html

Github 生成SSH秘钥(详细教程)

前言 很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用 SSH url 克隆到本地.然而,为什么绝大多数人会使用https url克隆呢? 这是因为,使用https url克隆对初学者来说会比较方便,复制https url 然后到 git Bash 里面直接用clone命令克隆到本地就好了.而使用 SSH url 克隆却需要在克隆之前先配置和添加好 SSH key . 因此,如果你想要使用 SSH url 克隆的话,你必须是这个项目的拥有者.否

s15day14 ssh秘钥远程连接

1 使用密钥登录    1.1 创建密钥对    1.2 上传公钥文件    1.3 导入公钥信息    1.4 使用密钥对登录2 远程执行命令    2.1 简单命令    2.2 使用脚本执行多命令 以192.168.1.104作为客户机以192.168.1.103作为服务器 1 使用密钥登录 1.1 创建密钥对 在SSH客户机创建用户秘钥对 ssh-keygen -t rsa 之后全回车即可将会在~/.ssh目录中生成两个文件:id_rsa(私钥) 与 id_rsa.pub(公钥) 1.2

SSH秘钥自动生产批量部署

SSH自动生成秘钥,并批量部署到各个服务器端 host_ip.txt 记录要部署的服务器IP地址 不足:上发秘钥需要输入各个服务器的账号密码,如果服务器数量巨大,输入账号密码要浪费大量时间,有待改进 #!/bin/bash serverip=`ifconfig |grep "inet addr:"|grep -v 127.0.0.1|awk '{print $2}'|awk -F ':' '{print$2}'`  ssh-keygen -t rsa -f /root/.ssh/id_