什么是 ssh 互信?说白了,就是在目标机器上,预先设置好经过认证的 key 文件,当需要访问目标机器时,目标机器通过 key 文件,对访问者进行自动认证,从而实现互信。
当管理大量机器时,使用 ssh-copy-id 方法一个个建立互信有些费时,那么使用 ansible 是否可以批量建立互信呢?
生成密钥对
ssh-keygen -t rsa
一路回车即可。
建立互信
格式: ssh-copy-id -i ~/.ssh/id_rsa.pub username@[ip,hostname]
ssh-copy-id -i ~/.ssh/id_rsa.pub username@192.168.1.2
根据提示完成操作即完成了互信。
批量建立互信
机器多的情况下,使用 ssh-copy-id 方法有些费时,使用 ansible-playbook 推送 ymal,这里使用到了 authoried_keys
模块,可以参考官方文档:http://docs.ansible.com/authorized_key_module.html
建立如下 playbook:
---- hosts: test# 互信用户user: hoxistasks:- name: ssh-copyauthorized_key: user=hoxis key="{{ lookup('file', '/home/hoxis/.ssh/id_rsa.pub') }}"
默认,已在 Ansible 资产文件中配置待互信机器信息。
执行:
PLAY [test] *****************TASK [Gathering Facts] ******
ok: [client]TASK [ssh-copy] *************
changed: [client]PLAY RECAP ******************
client : ok=2 changed=1 unreachable=0 failed=0
执行完毕,若没有报错,则证明互信建立成功。
测试:执行 ssh 登录,若无需再输入密码,则证明互信建立成功!
活动预告:最近帮大家争取了【赠书福利】,有兴趣的扫描下发二维码关注赠书活动信息~
如果觉得有用,欢迎关注我的微信,一起学习,共同进步,不定期推出赠书活动~
最近搜集到慕课网视频,视频内容涵盖 Python、Java、PHP、前端、小程序、算法、架构、数据库等等!关注本公众号,后台回复「慕课网」即可获取下载地址。