SSH命令批量操作服务器

        平时远程连接linux服务器时,通常使用一些类似Xshell的工具进行连接。如果需要批量执行命令时,就需要一台一台的执行命令进行登陆,然后执行命令,如果服务器很多的情况下,就比较费时费力。

        为了应对上述问题,可以使用SSH管理。ssh可以批量登陆服务器,批量执行命令。

1. ssh登陆

ssh ipXXX.XXX.XXX.XXX

输入yes后,输入对应的130服务器的密码,即可完成登陆。

 注意,在首次进ssh远程登录时,会提醒需要输入yes,之后不会提醒。

 如果在第一次登录时,也不想进行“yes”的输入,可以修改对应的配置文件,跳过验证。

vim /etc/ssh/ssh_config

#修改以下内容
StrictHostKeyChecking no

去掉注释并,修改值为 no

清空之前的记录

vim .ssh/known_hosts

 

 进行ssh登录,发现不再需要验证。

 2.  密钥

        ssh远程连接服务器时,依旧需要人工输入服务器密码,才能进行登录,在服务器数量较多的情况下,依旧费时费力。

        采用密钥的方式进行登录。

2.1 生成密钥

ssh-keygen -t rsa

 之后一直回车即可。

生成公私钥,在.ssh文件夹下。

id_rsa   私钥   可以理解为是一把钥匙

id_rsa.pub   公钥   可以理解为是一把金锁

2.2 发送公钥到目标服务器

执行命令

ssh-copy-id 192.168.116.130

输入服务器密码后,看到如下提示表示成功

再次使用ssh连接登陆,

 发现可以直接进行登录,并不用进行任何交互式的输入。

2.3 SSH公钥批量下发

下发ssh公钥时,依旧需要输入服务器密码。在服务器较多时,还是会花费大量的精力。

使用sshpass自动输入密码,

yum install sshpass -y
sshpass -p '123456' ssh-copy-id 192.168.116.130

编写批量下发公钥的shell脚本

vim deploy_rsa.sh
#!/bin/bash
IFSBAK=$IFS
IFS=$'\n'
for line in $(cat /root/deployhost);do
  myhostname=$(echo "$line" | awk '{print $1}')
  myip=$(echo "$line" | awk '{print $2}')
  mypwd=$(echo "$line" | awk '{print $3}')
  sshpass -p "$mypwd" ssh-copy-id -i /root/.ssh/id_rsa.pub $myip
done
IFS=$IFSBAK

准备deployhost服务器信息文件

 文件内容包含,服务器名称,ip,密码。

执行脚本进行ssh公钥批量下发。

sh deploy_rsa.sh 

 测试连接130 跟 131 服务器

 连接成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lee_yanyi

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

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

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

打赏作者

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

抵扣说明:

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

余额充值