免密登陆root和普通用户

#!/bin/bash
USER=test
#PASSWD=**
PASSWD=*
PUBDIR=/home/$USER/.ssh/id_rsa.pub
PUBDIRssh=/home/$USER/.ssh
PUBDIR_id_rsa=/home/$USER/.ssh/id_rsa
rootdir=/root/.ssh/id_rsa.pub
rootdir_id_rsa=/root/.ssh/id_rsa

if [ "$USER" == "root" ];then
    remote_dir=$rootdir
   else
    remote_dir=$PUBDIR
fi

user=`whoami`
echo $user
if [ "$user" == "root" ];then
			if [ ! -f $remote_dir ];then
			 #ssh-keygen -t rsa
			   if [ "$USER" == "root" ];then
expect << EOF
					 set timeout 10s
					 spawn ssh-keygen -t rsa 
					 expect "(${rootdir_id_rsa}):"  {send "\r"}					 
					 expect "passphrase):"          {send "\r"}
					 expect "again: "               {send "\r"}
					 expect "#"                     {send "\r"}
EOF
               else

			    if [ ! -d $PUBDIRssh ];then				 
				   mkdir -p $PUBDIRssh 
				   chown -R $USER:$USER /home/$USER/ 
				fi
			       expect << EOF
					 set timeout 10s
					 spawn ssh-keygen -t rsa 
					 expect "(${rootdir_id_rsa}):"  {send "${PUBDIR_id_rsa}\r"}				 
					 expect "passphrase):"          {send "\r"}
					 expect "again: "               {send "\r"}
					 expect "#"                     {send "\r"}
EOF
                chown -R $USER:$USER /home/$USER/
			   fi
fi
			
			
elif [ "$user" == "$USER" ];then

   expect << EOF
					 set timeout 10s
					 spawn ssh-keygen -t rsa 
					 expect "(${PUBDIR_id_rsa}):"  {send "\r"}					 
					 expect "passphrase):"          {send "\r"}
					 expect "again: "               {send "\r"}
					 expect "#"                     {send "\r"}
EOF
else
	echo "请使用root用户或者$USER登陆!!"
	exit
fi




while read line
  do
    ip=`echo $line | cut -d " " -f 1`
    expect <<EOF
      set timeout 10
	  
      spawn ssh-copy-id -i $remote_dir $USER@$line
      expect {
        "yes/no" { send "yes\n";exp_continue }
        "password" { send "$PASSWD\r" }
      }
      expect eof
EOF
  done </app/hostlist.txt

wait

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤舞飘伶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值