ssh批量处理
1、环境说明
1)C6系统3台
2)192.168.88.72--mysql--接收端
192.168.88.67--zabbix2--接收端
192.168.2.40--zjj--发送端
2、实现功能
1)发送端同时向2台接收端发送文件
2)发送端同时查看接收端状态信息
3、ssh端口均为22
一、设置免密码
说明:
1)免密码登陆是单向的
2)基于用户的,最好不要跨不同用户
3)1000台是瓶颈,都需要第一次密码
1、创建、分发密钥
1)三台创建统一用户和密码
useradd vvv //创建用户
echo "123456" |passwd --stdin vvv //创建密码
2)在40创建密钥对
su - vvv //将72、67、40切换到vvv用户
ssh-keygen -t dsa //创建dsa密钥
然后按3次回车
第一次是存放文件路径
第二次是否设置密码
第三次回车
ll /home/vvv/.ssh/ //查看此目录是否有以下2个文件吗
-rw------- 1 vvv vvv 668 Aug 12 17:31 id_dsa //私钥
-rw-r--r-- 1 vvv vvv 597 Aug 12 17:31 id_dsa.pub //公钥
3)分发公钥
ssh-copy-id -i .ssh/id_dsa.pub "-p 22 vvv@192.168.88.72" //向72发送公钥
然后输入vvv的密码
.ssh/authorized_keys //看到此文字说明发送成功
ssh-copy-id -i .ssh/id_dsa.pub "-p 22 vvv@192.168.88.67" //向67发送公钥
然后输入vvv的密码
.ssh/authorized_keys //看到此文字说明发送成功
4)查看接收端是否有公钥文件
ll .ssh/ //有以下文件说明发送成功
-rw------- 1 vvv vvv 597 Jul 20 14:35 authorized_keys
5)发送端连接接收端,正常不需要密码即可连接
ssh -p22 vvv@192.168.88.72 //连接72
6)解决ssh慢可修改以下文件
<1>ssh -v vvv@192.168.88.72 //通过此命令连接接收端,看卡在哪里可以根据卡在哪里更改sshd_config文件
<2>修改sshd_config
vi /etc/ssh/sshd_config //修改以下内容
UseDNS no //改为no
GSSAPIAuthentication no //改为no
<3>做/etc/hosts解析,127行尾加主机名
二、批量分发
1、分发到67和72
echo 123 >>a.txt
scp -p 22 a.txt vvv@192.168.88.67:~ //推送到67
scp -p 22 a.txt vvv@192.168.88.72:~ //推送到72
2、创建脚本同时分发到67和72
vi plff.sh //创建plff.sh脚本文件,填写以下内容
scp -p 22 a.txt vvv@192.168.88.67:~ //推送到67
scp -p 22 a.txt vvv@192.168.88.72:~ //推送到72
:wq //保存退出
sh plff.sh //执行脚本
3、分发不同文件到67和72
vi plff.sh //创建分发脚本,输入以下内容
for n in 72 67
do
scp -p 22 $1 vvv@192.168.88.$n:~
done
:wq //保存退出
sh plff.sh a.txt //发送a.txt到72和67
二、批量管理
1、批量查询ip地址
1)通过脚本执行脚本直接出结果
vi plff.sh //创建脚本添加
for n in 72 67
do
ssh -p22 vvv@192.168.88.$n /sbin/ifconfig |grep 192.168
done
:wq //保存退出
sh plff.sh //执行脚本
2)执行脚本后后边加命令出结果
vi plff.sh //创建脚本添加
for n in 72 67
do
ssh -p22 vvv@192.168.88.$n $1
done
:wq //保存退出
sh plff.sh /sbin/ifconfig |grep 192.168 //执行脚本