linux 批量ssh认证

来源:互联网 发布:淘宝服装定制店怎么开 编辑:程序博客网 时间:2024/05/23 01:11
<pre name="code" class="sql">redis01:/root# cd .ssh-bash: cd: .ssh: No such file or directoryredis01:/root# pwd/rootredis01:/root# cd .sshredis01:/root/.ssh# lsknown_hostsredis01:/root/.ssh# lsid_rsa  id_rsa.pub  known_hosts自动化ssh 脚本:#root用户初始化脚本,initroot.shif [  ! $# -eq 2  ] ;thenecho "请输入用户密码以空格分开"exitelsessh-keygen -t rsa#用户名uname="$1"#密码passwd="$2"fi#执行检测并安装expect模块ep=`rpm -qa | grep expect` if [ -z $ep   ] ; then echo "检测到你的系统,没有安装expect模块,准备执行安装" sleep 2 yum install -y expectelse echo "已经安装expect模块,3秒后,开始执行ssh文件同步" sleep 3fi#公钥无ssh认证模块cat hosts | while read hostdoecho "当前正在向$host上传输ssh文件"expect <<EOFspawn  scp -r .ssh/  $host:/$uname expect {"*yes/no" {send "yes\r" ;exp_continue}"*password:" {send "$passwd\r" ;exp_continue  }}EOFecho "当前正在$host上进行公钥认证....."sleep 2expect <<EOFspawn  ssh-copy-id  -i .ssh/id_rsa.pub $host expect {"*yes/no" {send "yes\r" ;exp_continue}"*password:" {send "$passwd\r" ;exp_continue  }}EOFecho "认证成功...."done#切换root权限进行hosts文件分发echo "同步本机的hosts文件到各个机器上"sleep 1#同步本机的hosts文件到其他各个机器上cat hosts | while read hostdoscp -r /etc/hosts $host:/etc/doneecho "同步hosts文件完毕"A->B B-> 相互信任  A 脚本需要ssh-keygen -t rsa  B不需要


                                             
0 0
原创粉丝点击