我与1200台服务器的悲伤故事(sshpass的使用)

前言:
 今天正在打农药,我的妲己正在草丛里拿五杀的时候,好嘛,突然接到一个电话,顿时不好的预感来了,一看领导打来的,说 "安全团队扫到了弱口令,发现了系统漏洞,这个事情很着急",最后我总结了一下就是让我去加班给系统做安全加固。那就用sshpass先改个密码吧,之后再用ansible批量加固。(可能你们好奇为啥不用ansible一并改密码,因为我这的环境实在是太特殊了,牵涉到院里环境,不再多说),,,然而研究了一下sshpass发现因为各种原因没办法使用,然后。。。。没错。就是一台一台改的,4个人8小时,,,不过发现sshpass在做一些简单操作的时候确实很方便所以记录下

一、sshpass服务的安装

centos系统自带的CentOS-Base.repo源就有yum install sshpass -y 安装即可

我与1200台服务器的悲伤故事(sshpass的使用)

二、sshpass服务的使用

sshpass支持在命令行中使用密码,可以结合脚本来实现一些功能
注意:不建议在生产环境使用(明文密码不安全),一般用于新购服务器初始化一些环境

sshpass采用密码远程

sshpass  -p 'redhat' ssh -o "StrictHostKeyChecking=no" 10.85.1.1 'ifconfig'
#参数注释:-o "StrictHostKeyChecking=no" 假如一台主机是第一次连接会让你确认是否连接,这个参数代表不询问,直接连接,如果不添加,会造成命令执行失败
#注:如果不是22端口那么添加"-p 你的端口" 即可

sshpass从环境变量读取密码

export SSHPASS=redhat     #设置环境变量,临时生效,如果想要一直使用,需要将此参数添加到/root/.bash_profile下
sshpass -e ssh 172.16.133.86 'ifconfig'     #-e 代表使用环境变量作为密码

sshpass采用从文件读取密码方式连接

sshpass -f passwd  ssh -o "StrictHostKeyChecking=no" 172.16.133.86 'ifconfig'
#参数注释:-f 指定从文件读取密码。passwd是我的密码文件名

工作中的一个实例脚本,在sysctl.conf文件中添加一行参数

#!/bin/bash
for i in $(cat ip.txt);do
        /usr/bin/sshpass  -f /root/passwd ssh -o "StrictHostKeyChecking=no -p7791$i  /bin/echo "net.ipv4.tcp_sack = 0" >>/etc/sysctl.conf
        /sbin/sysctl -p
done    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值