sshpass的安装及使用

2019-12-14  本文已影响0人  w_dll

title: 'sshpass的安装及使用'
date: 2019-11-23 12:33:45
tags: [sshpass,centos,tools,linux,install]
published: true
hideInList: false
feature:


目前工作需要大量进行批处理,在内网,简单的批量处理使用以及安装sshpass较为简单,在时间紧急的情况下也是一种很好的解决方案。
前提是每台机器的密码需要一致,而且都有ssh服务。

sshpass的安装由于是内网,需要有sshpass的离线安装包;
获得离线安装包的方式可以参考我的上一篇文章。
所使用的环境是centos7,下载离线安装包

yum install --downloadonly --downloaddir /tmp/sshpass/ epel-release
yum install --downloadonly --downloaddir /tmp/sshpass/  sshpass

将rpm包导入内网机器中,安装sshpass;
完成后,通过这台机器批量处理处理,包括它自身;
我的设计思路是把所有的批量机器的ip保存在ip.txt文件中如:

[root@wdll ~]# cat ip.txt 
192.168.1.101
192.168.1.102
192.168.1.100

装了sshpass的机器ip为192.168.1.100,放到末尾。
这些机器的密码都为 123456,使用以下脚本进行预处理

[root@wdll ~]# cat ssh.sh 
#!/bin/bash
for li in `cat ip.txt`;
do
  echo "connecting to $li ......"
  sshpass -p 123456 ssh root@$li "sed -i '/UseDNS/d' /etc/ssh/sshd_config && echo 'UseDNS no' >>/etc/ssh/sshd_config && service sshd restart"
  echo "closed"
done

处理结束后,修改装了sshpass的机器的配置文件

sed -i '/StrictHostKeyChecking/d' /etc/ssh/ssh_config;\
echo 'StrictHostKeyChecking no' >> /etc/ssh/ssh_config;\
sed -i '/GSSAPIAuthentication/d' /etc/ssh/ssh_config;\
echo 'GSSAPIAuthentication no' >> /etc/ssh/ssh_config;\
service sshd restart

之后可以进行批量处理操作了;
传输

sshpass -p 123456 scp ${src_dir} root@${tar_ip}:${tar_dir}

执行命令

sshpass -p 123456 ssh root@${tar_ip} "${command}"
上一篇下一篇

猜你喜欢

热点阅读