热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ansible实现批量建立互信

什么是ssh互信?说白了,就是在目标机器上,预先设置好经过认证的key文件,当需要访问目标机器时,目标机器通过

什么是 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 资产文件中配置待互信机器信息。

执行:

# ansible-playbook pushssh.yamlPLAY [test] *****************TASK [Gathering Facts] ******
ok: [client]TASK [ssh-copy] *************
changed: [client]PLAY RECAP ******************
client : ok=2 changed=1 unreachable=0 failed=0

执行完毕,若没有报错,则证明互信建立成功。

测试:执行 ssh 登录,若无需再输入密码,则证明互信建立成功!



活动预告:最近帮大家争取了【赠书福利】,有兴趣的扫描下发二维码关注赠书活动信息~

Python 帮我起飞


如果觉得有用,欢迎关注我的微信,一起学习,共同进步,不定期推出赠书活动~

你的关注是对我最大的鼓励!

最近搜集到慕课网视频,视频内容涵盖 Python、Java、PHP、前端、小程序、算法、架构、数据库等等!关注本公众号,后台回复「慕课网」即可获取下载地址。


推荐阅读
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 春季职场跃迁指南:如何高效利用金三银四跳槽季
    随着每年的‘金三银四’跳槽高峰期的到来,许多职场人士都开始考虑是否应该寻找新的职业机会。本文将探讨如何制定有效的职业规划、撰写吸引人的简历以及掌握面试技巧,助您在这关键时期成功实现职场跃迁。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • JavaScript 中引号的多层嵌套使用技巧
    本文详细介绍了在 JavaScript 编程中如何处理引号的多级嵌套问题,包括双引号、单引号以及转义字符的正确使用方法。 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • 本文基于Java官方文档进行了适当修改,旨在介绍如何实现一个能够同时处理多个客户端请求的服务端程序。在前文中,我们探讨了单客户端访问的服务端实现,而本篇将深入讲解多客户端环境下的服务端设计与实现。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • 本文探讨了如何利用RxJS库在AngularJS应用中实现对用户单击和拖动操作的精确区分,特别是在调整区域大小的场景下。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 本文详细介绍了如何利用 Bootstrap Table 实现数据展示与操作,包括数据加载、表格配置及前后端交互等关键步骤。 ... [详细]
  • 本文探讨了 Java 中 net.minecraft.client.multiplayer.PlayerControllerMP 类下的 getCurrentGameType() 方法的详细使用方法,并提供了多个实际应用的代码示例。 ... [详细]
author-avatar
leee
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有