自动化ssh登录远程主机(免密)配合ansible使用效果更佳,sshansible


废话不多说直接上代码(shell脚本的哦~~)

#!/bin/bash#进行自动化获取IP地址及密码,并创建登陆秘钥#先编辑本地/etc/ssh/ssh.config文件#修改GSSAPIAuthentication yes 为 no (提升链接速度)#修改# StrictHostKeyChecking ask 改成 StrictHostKeyChecking no (禁用提示)n=1#密码本及程序目录rootdir="/root"#ssh登录所用账号root="root"#进行比对最后一行行号所用max=`tail -n1 $rootdir/passwd.txt | awk '{print $1}'`



#while循环,若n小于等于最大的行号,则进行下一步while [ $n -le $max ]do#按行输出i=`grep ^$n $rootdir/passwd.txt`#匹配第二列,账号,若有问题可以更改    ip=`echo $i |awk '{print $2}'`#匹配第三列,密码,若格式有问题可以更改    passwd=`echo $i |awk '{print $3}'`#密码本目录    cd $rootdir#创建expect脚本,交互输入密码,进行ssh-copy-id命令,实现无密码登录    cat > $rootdir/passwd.exp << EOF#!/usr/bin/expect -fspawn ssh-copy-id $root@$ip expect "*password:"send "$passwd\\r"expect eofEOF    chmod 755 /root/passwd.exp    ./passwd.exp    let n++done

需要配合密码本使用,密码本格式:

N(数字,行数)IP  PASSWORD

注:若没有行号的密码本,可以使用cat -n file.txt > passwd.txt

相关内容

    暂无相关文章