ssh 批量配置互信

!/bin/sh

DEST_USER= 1PASSWORD= 2
HOSTS_FILE= 3if[ # -ne 3 ]; then
echo “Usage:”
echo “$0 remoteUser remotePassword hostsFile”
exit 1
fi

SSH_DIR=~/.ssh
SCRIPT_PREFIX=./tmp
echo ===========================

1. prepare directory .ssh

mkdir SSHDIRchmod700 SSH_DIR

2. generat ssh key

TMP_SCRIPT=SCRIPT_PREFIX.sh  
echo  “#!/usr/bin/expect”>
TMP_SCRIPT
echo “spawn ssh-keygen -b 1024 -t rsa”>>$TMP_SCRIPT
echo “expect key“>> TMPSCRIPTechosend\r>> TMP_SCRIPT
if [ -f $SSH_DIR/id_rsa ]; then
echo “expect verwrite“>> TMPSCRIPTechosendy\r>> TMP_SCRIPT
fi
echo “expect passphrase“>> TMPSCRIPTechosend\r>> TMP_SCRIPT
echo “expect *again:”>> TMPSCRIPTechosend\r>> TMP_SCRIPT
echo “interact”>>$TMP_SCRIPT

chmod +x $TMP_SCRIPT

/usr/bin/expect TMPSCRIPTrm TMP_SCRIPT

3. generat file authorized_keys

cat SSHDIR/idrsa.pub>> SSH_DIR/authorized_keys

4. chmod 600 for file authorized_keys

chmod 600 $SSH_DIR/authorized_keys
echo ===========================

5. copy all files to other hosts

for ip in (cat HOSTS_FILE)
do
if [ “x ip!=x];thenechoTMPSCRIPT= {SCRIPT_PREFIX}.$ip.sh
# check known_hosts
val=ssh-keygen -F $ip
if [ “x val==x];thenecho ip not in $SSH_DIR/known_hosts, need to add”
val=ssh-keyscan $ip 2>/dev/null
if [ “x val==x];thenechosshkeyscan ip failed!”
else
echo val>> SSH_DIR/known_hosts
fi
fi
echo “copy SSHDIRto ip”

    echo  "#!/usr/bin/expect">$TMP_SCRIPT  
    echo  "spawn scp -r  $SSH_DIR $DEST_USER@$ip:~/">>$TMP_SCRIPT  
    echo  "expect *assword*">>$TMP_SCRIPT  
    echo  "send $PASSWORD\r">>$TMP_SCRIPT  
    echo  "interact">>$TMP_SCRIPT  

    chmod +x $TMP_SCRIPT  
    #echo "/usr/bin/expect $TMP_SCRIPT" >$TMP_SCRIPT.do  
    #sh $TMP_SCRIPT.do&  

    /usr/bin/expect $TMP_SCRIPT  
    rm $TMP_SCRIPT  
    echo "copy done."                  
fi  

done
echo done.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值