阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

SSH非交互式密码授权远程执行脚本

201次阅读
没有评论

共计 1628 个字符,预计需要花费 5 分钟才能阅读完成。

公司有上百台服务器,需要为每台服务器都执行一个脚本,因为所有服务器的账号密码都是一样的,所以可以不用搭建 ansible 等自动化运维工具,我们直接通过 SSH 远程执行即可完成。

本文以三台服务器为例,系统版本:CentOS7.3
1、安装 sshpass
cd /etc/yum.repos.d/
wget http://download.openSUSE.org/repositories/home:Strahlex/CentOS_CentOS-6/home:Strahlex.repo
yum install -y sshpass

2、新建 IP 地址列表文件
cd /usr/local/sbin
vim iplist.txt
192.168.19.142
192.168.19.143

3、编写脚本

脚本思路:先拷贝需要远程执行的脚本文件到各远程服务器上,然后通过 ssh 远程执行脚本。
vim command.sh
#! /bin/bash

pw=`pwd`
dest_user=root
dest_pwd=Admin123
dest_path=/usr/local/sbin
script_name=cmd.sh

chmod +x $pw/$script_name
[! -f $pw/scpssh.log] && touch $pw/scpssh.log
echo begin > $pw/scpssh.log

for ip in `cat $pw/iplist.txt`
do
    sshpass -p $dest_pwd scp -P22 -o StrictHostKeyChecking=no $pw/$script_name $dest_user@$ip:$dest_path
    if [$? = 0]
    then
        echo $ip scp success |tee -a $pw/scpssh.log
    else
        echo $ip scp failed |tee -a $pw/scpssh.log
        echo  >> $pw/scpssh.log
    fi

    sshpass -p $dest_pwd ssh -P22 -o StrictHostKeyChecking=no $dest_user@$ip $dest_path/$script_name
    if [$? = 0]
    then
        echo $ip ssh success |tee -a $pw/scpssh.log
    else
        echo $ip ssh failed |tee -a $pw/scpssh.log
        echo  >> $pw/scpssh.log
    fi
done
echo End! >> $pw/scpssh.log
 
说明:dest_path 为远程机器的路径,script_name 为需要远程执行的脚本名称。

赋予执行权限
chmod +x command.sh

4、执行脚本
把需要远程执行的脚本 cmd.sh 放在 /usr/local/sbin/ 目录中,该远程脚本只是在远程服务器 /usr/local/sbin/ 目录下创建一个文件夹。
cat cmd.sh
#! /bin/bash
cd /usr/local/sbin
pw=`pwd`
mkdir $pw/test

目录结构
SSH 非交互式密码授权远程执行脚本
执行脚本
sh command.sh

SSH 非交互式密码授权远程执行脚本

注意:第一次执行会提示如下警告,是因为让 ssh 自动添加到已知主机文件中的提示,可忽略
Warning: Permanently added ‘192.168.19.142’ (ECDSA) to the list of known hosts.

5、查看结果
在当前目录下会产生日志文件 scpssh.log
并在远程服务器上可查看到生成了 test 文档

SSH 非交互式密码授权远程执行脚本

注意:提示 Host key verification failed,避免该问题可以在 ssh 或 scp 的时候通过 - o 选择加参数数 StrictHostKeyChecking=no,让 ssh 自动添加到已知主机文件中,来避免该问题。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/143180.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计1628字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中