微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

已整理-sshpass 脚本应用案例

 

sshpass一个简单、轻量级命令行工具,提供非交互式密码验证

原理:
1、ssh 直接使用 TTY 访问,以确保密码用户键盘输入的。 sshpass 在专门的 tty 中运行 ssh,以误导 ssh 相信它是从用户接收到的密码
2、使用 sshpass 是不安全的,因为所有系统上的用户可以看到密码。因此,在生产环境,建议使用 密钥登录


安装:

# yum install epel-release
# yum install sshpass

  

命令语法:

sshpass [options] ssh user@host

  

options
-p password      #直接提供密码

# sshpass -p '123456' ssh [email protected] 'df -h'

  

-e           #读取环境变量 SSHPASS,在bashrc 中添加 SSHPASS 环境变量,配置登录密码

export SSHPASS='PmN8uq48tBGwrMCY'
sshpass -e ssh user@host

# 配置别名使用更香
alias sshtup='sshpass -e ssh [email protected] '"'"'sh /root/update.sh'"'"''

  

-f filename     #从文件中读取密码

# sshpass -f password_filename ssh [email protected] 'df -h'

  


但最好加上:ssh -o StrictHostKeyChecking=no

示例脚本如下:

#!/bin/bash

>result.txt
>error_ssh_ip.txt
>temp.txt
for i in `cat linux.txt` do   ping -c 3 -i 0.2 -W 1 $i &> /dev/null   [ $? -eq 0 ] && echo $i" is ok" || continue   sshpass -p '123456' ssh -o StrictHostKeyChecking=no admin@$i 'ps -ef |egrep "rsyslog|rpc|rpc.statd|python|dns"|grep -v grep' &> temp.txt   if [ $? -ne 0 ] ; then     echo $i >> error_ssh_ip.txt     continue   fi   awk '{print res_ip," ",$0}' res_ip=$i temp.txt >>result.txt done

  

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐