Linux 批量建立信任关系,实现ssh无password登陆的脚本

Posted lytwajue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 批量建立信任关系,实现ssh无password登陆的脚本相关的知识,希望对你有一定的参考价值。

作用:

把当前机器的ssh公钥拷贝到其它机器。以实现从当前机器能够ssh无password登陆到其它机器

用法:

1)把要加入的ip地址写入到一个文件里。比方host

2)把脚本保存为sh文件,如 install_ssh.sh 设置可运行权限

3)改写脚本中的password设置。眼下仅仅支持固定几个password。

4)  运行命令 

sh install_ssh.sh <host


代码:


#!/bin/sh


auto_ssh_copy_id() {
  local HOST=$1
  local PASSWD=$2
  expect -c "set timeout -1;
    spawn ssh-copy-id [email protected]$HOST
    expect {
      *publickey* {exit 1;}
      *(yes/no)* {send yes\r; exp_continue;}
      *password* {send \"$PASSWD\r\"; exp_continue;}
      ** {send \"$PASSWD\r\"; exp_continue;}
    }";
}


      #eof {exit 0;}
passwd1=‘[email protected]
passwd2=‘[email protected]
passwd3=‘[email protected]
passwd4=‘123456‘
passwd5=‘asdasd‘
passwd6=‘12345‘
while read line; do
  echo "$line" >&2
  isSucceed=‘FALSE‘
  for pw in $passwd1 $passwd2 $passwd3 $passwd4 $passwd5 $passwd6
  do
    if auto_ssh_copy_id "$line" $pw
    then
        isSucceed=‘TRUE‘
        break;
    fi
  done


  if [ $isSucceed != ‘TRUE‘ ]; then
    echo ‘NOTSUCC‘ $line
  fi
done 





































以上是关于Linux 批量建立信任关系,实现ssh无password登陆的脚本的主要内容,如果未能解决你的问题,请参考以下文章

ssh两台机器建立信任关系无密码登陆

Linux之间建立信任,即无密码传输文件

linux主机之间建立ssh信任关系

两条命令在Linux主机之间建立信任关系

让两台甚至多台Linux服务器建立SSH信任关系

Linux SSH , SCP 建立信任关系(免密传输)