Linux如何批量建立服务器之间SSH免密

这篇文章主要介绍了Linux如何批量建立服务器之间SSH免密,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创新互联-专业网站定制、快速模板网站建设、高性价比蔡甸网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式蔡甸网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖蔡甸地区。费用合理售后完善,10多年实体公司更值得信赖。

一、批量建立ssh私钥认证

1. 编译安装expect

expect依赖于tcl,而linux系统里一般不自带安装tcl,所以需要手动安装。

(1) 安装tcl

cd /opt/tcl8.4.11/unix ./configure make && make install

(2) 安装expect

cd expect-5.43.0 ./configure --with-tclinclude=/opt/tcl8.4.11/generic --with-tclconfig=/usr/local/lib/ make && make install

Linux如何批量建立服务器之间SSH免密

(3) 测试

Linux如何批量建立服务器之间SSH免密

2. 主控端生成公钥

执行ssh-keygen,该命令会默认在~/.ssh/目录下创建id_rsa、id_rsa.pub两个文件,分别为公钥和私钥

ssh-keygen cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

Linux如何批量建立服务器之间SSH免密

3. 相关脚本

以下均放在/root目录下

(1) ip.txt

注意前面是IP,后面是密码,用冒号:分割,如果密码有冒号的建议单独处理

IP:密码

(2) remote_operate.sh

#!/bin/bash #copyright by hwb   if [ ! -d /root/.ssh ];then   mkdir /root/.ssh fi cat /tmp/authorized_keys >> /root/.ssh/authorized_keys

(3) batch_sshkey.sh

#!/bin/bash #copyright by hwb   for i in `cat ip.txt` do ip=$(echo "$i"|cut -f1 -d":") password=$(echo "$i"|cut -f2 -d":")  expect -c " spawn scp /root/.ssh/authorized_keys /root/remote_operate.sh root@$ip:/tmp/  expect {  \"*yes/no*\" {send \"yes\r\"; exp_continue}  \"*password*\" {send \"$password\r\"; exp_continue}  \"*Password*\" {send \"$password\r\";}  } "  expect -c " spawn ssh root@$ip "/tmp/remote_operate.sh"  expect {  \"*yes/no*\" {send \"yes\r\"; exp_continue}  \"*password*\" {send \"$password\r\"; exp_continue}  \"*Password*\" {send \"$password\r\";}  } " done

4. 执行脚本并测试

运行batch_sshkey.sh脚本

Linux如何批量建立服务器之间SSH免密

感谢你能够认真阅读完这篇文章,希望小编分享的“Linux如何批量建立服务器之间SSH免密”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!

文章标题:Linux如何批量建立服务器之间SSH免密
网址分享:https://www.cdcxhl.com/article16/phoidg.html

成都网站建设公司_创新互联,为您提供响应式网站微信小程序云服务器全网营销推广自适应网站网站维护

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名