SSH秘钥分发、文件分发、批量执行命令

SSH秘钥分发、文件分发、批量执行命令

要求使用同一用户lss,实现A机器从本地分发数据到B、C的过程不需要输入密码,且可以批量在B、C主机上执行命令

IP角色用户
192.168.1.4aaa-服务端lss
192.168.1.5bbb-客户端lss
192.168.1.6ccc-客户端lss
  1. 首先确保aaa-服务端可以ping通bbb客户端与ccc客户端
[root@aaa-server ~]# ping bbb-server
PING bbb-server (192.168.1.5) 56(84) bytes of data.
64 bytes from bbb-server (192.168.1.5): icmp_seq=1 ttl=64 time=1.64 ms
[root@aaa-server ~]# ping ccc-server
PING ccc-server (192.168.1.6) 56(84) bytes of data.
64 bytes from ccc-server (192.168.1.6): icmp_seq=1 ttl=64 time=2.17 ms
[root@aaa-server ~]# 

  1. 将aaa服务端的公钥发给bbb客户端与ccc客户端确保可以秘钥登陆
  • 以下均在aaa服务端执行
//生成lss用户的秘钥
[lss@aaa-server .ssh]$ ssh-keygen -t rsa -C lss

//将公钥分发到bbb客户端
[lss@aaa-server .ssh]$ ssh-copy-id -i ~/.ssh/id_rsa.pub lss@192.168.1.5
//将公钥分发到ccc客户端
[lss@aaa-server .ssh]$ ssh-copy-id -i ~/.ssh/id_rsa.pub lss@192.168.1.6


  1. 执行脚本实现文件分发、批量执行命令
  • 创建批量执行命令的脚本
[lss@aaa-server command-file]$ vim ssh-command.sh
#!/bin/bash
if [ $# -ne 1 ];then
        echo "USAGE $0:{Please Command}"
        exit 1
fi

Command="$1"
IP="192.168.1"
User=lss
Port=22

for i in 5 6
do
        echo "###Server IS $IP."$i"###"
        /usr/bin/ssh $User@$IP."$i" -p"$Port" "$Command"
done


  • 在bbb客户端与ccc客户端批量执行ls命令
[lss@aaa-server command-file]$  sh ssh-command.sh ls
###Server IS 192.168.1.5###
Desktop
Documents
Downloads
Music
Pictures
Public
Templates
Videos
###Server IS 192.168.1.6###
Desktop
Documents
Downloads
Music
Pictures
Public
Templates
Videos
[lss@aaa-server command-file]$ 

  • 创建文件批量分发脚本distributeFile.sh
#!/bin/bash
if [ $# -ne 2 ];then
        echo "USAGE $0:{LocalFile|RemoteFile}"
        exit 1
fi

File1="$1"
DirFile="$2"
IP=192.168.1
User=lss
Port=22

for i in 5 6
do
        echo "###Server IS $IP."$i"###"
        /usr/bin/scp -rp -P"$Port" $File1 $User@$IP."$i":$DirFile
done

  • 将aaa服务端的文件ssh-command.sh批量分发到bbb客户端与ccc客户端
[lss@aaa-server command-file]$ sh distributeFile.sh ssh-command.sh /tmp/
###Server IS 192.168.1.5###
ssh-command.sh                                      100%  229     0.2KB/s   00:00    
###Server IS 192.168.1.6###
ssh-command.sh                                      100%  229     0.2KB/s   00:00    
[lss@aaa-server command-file]$
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值