当前位置:首页 > 嵌入式新闻
[导读]大家好,我是anyux。我将给大家介绍Linux多台机器一键免密互信脚本。

大家好,我是anyux。我将给大家介绍Linux多台机器一键免密互信脚本。

因为很多操作工具构架需要免密钥互信的基础才能实现,比如hadoop,MHA等,本人十分懒惰,不想因为反复克隆机器后,再搞复制粘贴的操作。从昨天晚上11点还完成,气得直接睡觉去了。

白天来公司,正巧无事(一会做完了),上手就开始完成这个脚本。

心急的同学,可以直接替换head_ip(前缀ip),arr(后缀ip),passwd(密码),以root权限直接运行

这个版本是很基础的小脚本,就跟闹着玩一样。

它的不足,

依赖第三工具,并且需要以root权限安装,运行ip限制,需要手动修改同步密钥的算法未优化,感觉可以优化,虽然还不知道优化的空间有多少

再说说它的实现逻辑

这里的前提,是所有同步密钥机器的密码一致(不一致的要等待下一个版本更新吧)

随机一台机器登录,生成密钥对,复制公钥到其他主机认证基于循环,逐个远程登录主机,删除密钥对,重新生密钥对基于循环,逐个远程登录主机,安装远程工具sshpass,复制公钥到其他机器,还有本地主机localhost检测多主机免密通信情况#!/bin/bash#算法密钥#分发给指定机器#ip_headerhead_ip='192.168.255.'#ip_footerarr=(113 114 115)#用户家密钥目录base_dir=~/.ssh/#公钥pub=id_rsa.pub#私钥key=id_rsa#用户名称user=root#用户密码passwd=root#需要root权限安装软件install_cmd(){yum install -y pssh sshpass}create_key(){sleep 2#删除本地初始密钥对rm -rf ${base_dir}sleep 1echo -e "删除完成\n"echo "开始分发"echo "\n"echo "++++++++++++++++++++"#本地主机生成密钥\ssh-keygen -t rsa -f ${base_dir}${key} -P ""for ip in ${arr[@]}doecho "输出ip**********"echo "ssh root@${head_ip}${ip} "tmp='ssh-keygen -t rsa -f ${base_dir}${key} -P ""'#本地主机公钥复制到其他主机认证文件sshpass -p${passwd} ssh-copy-id $user@${head_ip}${ip} -o StrictHostKeyChecking=no#远程主机连接,删除已生成的密钥,并重新生成密钥sshpass -p${passwd} ssh $user@${head_ip}${ip} "rm -rf ${base_dir}${key};rm -rf ${base_dir}{pub}"#远程主机连接,生成密钥sshpass -p${passwd} ssh $user@${head_ip}${ip} "ssh-keygen -t rsa -f ${base_dir}${key} -P ''"#远程主机连接,将公钥复制到其他主机认证文件for tmp_ip in ${arr[@]}do#安装远程连接工具sshpass -p${passwd} ssh $user@${head_ip}${ip} "yum install -y sshpass;"#远程主机,将公钥同步到其他机器sshpass -p${passwd} ssh $user@${head_ip}${ip} "sshpass -p${passwd} ssh-copy-id $user@${head_ip}${tmp_ip} -o StrictHostKeyChecking=no"#远程主机,将公钥同步localhost主机名下sshpass -p${passwd} ssh $user@${head_ip}${ip} "sshpass -p${passwd} ssh-copy-id $user@localhost -o StrictHostKeyChecking=no"donedoneecho -e "分发完结\n"}check_ip(){for ip in ${arr[@]}dopssh -H ${head_ip}${ip} -i $1done}bat(){echo "输出ok:";check_ip 'echo "ok"'echo "输出ping结果:";check_ip 'ping qq.com -c 2'echo "获取主机名:";check_ip 'ls ~/.ssh'echo "获取主机名:";check_ip "source /etc/profile;ip a | grep inet | grep ${head_ip}"}main(){install_cmd;create_key;bat}main

换一批

延伸阅读

[科技喵] 太激进了!上游 Linux 开发者反对“-O3”级别的内核优化

太激进了!上游 Linux 开发者反对“-O3”级别的内核优化

WireGuard 作者 Jason A. Donenfeld 上周向 Linux 内核提交了一个补丁,他建议在使用新发布的 GCC 10 编译器或更高的版本时,将内核的默认编译优化级别由 -O2 设置为 -O3。Jason 解释道,GCC...

关键字: Linux

[科技喵] 又一次抛弃 Windows,德国慕尼黑再次拥抱开源

又一次抛弃 Windows,德国慕尼黑再次拥抱开源

时隔多年,德国慕尼黑市再次拥抱开源。最近当选的慕尼黑执政联盟在一项联合协议中表示,在技术和经济可行的情况下,该市将重点放在开放标准和自由开源软件上。联盟将执政到 2026 年,原则是“public money, public code”,意...

关键字: Linux 慕尼黑 微软windows

[科技前线] iPhone在列!Linux移动操作系统postmarketOS已适配200款移动设备

iPhone在列!Linux移动操作系统postmarketOS已适配200款移动设备

根据 Tux Phones 提供的最新数据,postmarketOS 目前已在大约 200 款移动设备上运行,其中包括手机和平板电脑。考虑到 Linux 在手机等移动设备上的使用情况,以及这个项目的较高使用门槛,这称得上是一项不可思议的成就...

关键字: iPhone Linux postmarketos

[嵌入式分享] 德国慕尼黑宣布放弃Windows,转用Linux!

德国慕尼黑宣布放弃Windows,转用Linux!

此前韩国宣布放弃使用windows,几天前又一个国家宣布放弃Windows了,就是德国。 德国慕尼黑又一次抛弃了 Windows,举市“迁向” Linux,拥抱开源。慕尼黑的动作被认为是德国对专有软件做重大政治变革的标志...

关键字: Windows Linux

[安全设备/系统] Linux系统被侵入该怎么处理解决

Linux系统被侵入该怎么处理解决

很多客户网站服务器被入侵,被攻击,找到我们SINE安全公司寻求技术支持与帮助,有些网站被篡改,被跳转,首页内容被替换,服务器植入木马后门,服务器卡顿,服务器异常网络连接,有的客户使用的是阿里云服务器,经常被提醒服务器有挖矿程序,以及网...

关键字: Linux 安全系统

嵌入式新闻

17094 篇文章

关注

发布文章

技术子站

关闭