文章目录

  • 一、sshpass介绍
  • 二、sshpass安装
  • 三、sshpass使用
  • 四、sshpass实例
  • 总结:整理不易,如果对你有帮助,可否点赞关注一下?

一、sshpass介绍

ssh登陆不能在命令行中指定密码,也不能以shell中随处可见的,sshpass的出现,解决了这一问题。它允许你用“-p”参数指定明文密码,然后直接登录远程服务器。 它支持密码从命令行,文件,环境变量中读取。

ssh命令, 没有指定密码的参数. 以至于在脚本中使用ssh命令的时候, 必须手动输入密码, 才能继续执行. 这样使得脚本的自动化执行变得很差, 尤其当ssh对应的机器数很多的时候, 会令人抓狂.使用非交互式样有两种方式: 一种借助expect脚本, 一种借助sshpass来实现。


二、sshpass安装

# 源码包安装
wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz
tar xvzf sshpass-1.05.tar.gz
cd sshpass-1.05
./configure
make
make install # yum安装
yum install -y epel-release
yum  -y install sshpass

三、sshpass使用

[root@localhost ~]# sshpass -h
Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters-f filename   Take password to use from file-d number     Use number as file descriptor for getting password-p password   Provide password as argument (security unwise)-e            Password is passed as env-var "SSHPASS"With no parameters - password will be taken from stdin-P prompt     Which string should sshpass search for to detect a password prompt-v            Be verbose about what you're doing-h            Show help (this screen)-V            Print version information
At most one of -f, -d, -p or -e should be used参数:
-p   password    #将参数password作为密码。
-f   passwordfile #提取文件passwordfile的第一行作为密码。
-d   使用数字作为文件描述符来获取密码
-e   将环境变量SSHPASS作为密码。

实例如下:

# 1、免密码登录
sshpass -p "123456" ssh -o 'StrictHostKeyChecking=no' root@192.168.1.149# 2、远程执行命令
sshpass -p "123456" ssh root@192.168.1.149 "yum install vim -y"# 3、从文件中读取密码
echo 123456 > password.txt
sshpass -f password.txt ssh root@192.168.1.149 "ip a | grep ens33"# 4、从变量中读取密码
export SSHPASS="123456"
sshpass -e ssh root@192.168.1.149
sshpass -e ssh root@192.168.1.149 "ip a | grep ens33"# 5、本地文件发送到远程主机
sshpass -p "123456" scp /tmp/b.txt root@192.168.1.149:/tmp# 6、从远程主机上拉取文件到本地
sshpass -p "123456" scp root@192.168.1.149:/tmp/b.txt /tmp

说明:sshpass不可以直接接带特殊字符意义的密码,需要转义或者用小括号,或者指定文件的方式来连接都可以规避这个问题。


四、sshpass实例

背景:定期修改服务器(1000台左右)密码之后,验证是否修改成功。

#cat ip.txt
192.168.1.149
192.168.1.150
192.168.1.151#cat check_passwd.sh
#!/bin/bash
ips=`cat ip.txt`
for ip in $ips
doecho ==========$ip===========sshpass -p "123456" ssh root@$ip ":" [ $? -eq 0 ] && echo -e  "\033[32m ==$ip==password is ok... \033[0m" || echo -e "\033[31m ==$ip==Password is error!!! \033[0m"
done

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:Linux运维实战总结

《Linux运维总结:sshpass一个很棒的免交互SSH登录工具》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. OpenCV实现0到9数字识别OCR
  2. 倒立摆的数学模型,matlab程序,simulink,c语言控制,一级倒立摆的控制设计
  3. 如何对phpcms v9的首页列表进行分页?
  4. 一不小心,它成为了 GitHub Alibaba Group 下 Star 最多的开源项目
  5. 信息系统项目管理师范围管理
  6. kubernetes(k8s)架构和组件,工作流程 ,资源
  7. 局域网聊天室 -ChatServer
  8. I.MX6 system.img unpack repack
  9. 51单片机50个实例代码_【附代码】51单片机电子密码锁教程
  10. Flutter ScrollController not attached to any scroll views 异常
  11. js udp通信_Node.JS实战17:开发一个正向代理服务器
  12. 计算机类研究生求职经历以及经验共享(转)
  13. PLC基本指令系统优势
  14. mac快速切换大小写_快速模式匹配–如果是大小写,请切换为大小写
  15. DeepFM算法详解-推荐算法中的皇冠
  16. TX2(Ubuntu16.04)安装TP-link外接网卡驱动及AP热点创建
  17. phpstorm 用git pull或者 git push报错 protocol error: bad line length character: Acti
  18. marvelous designer 10安装使用教程(附快捷键)
  19. linux解决make依赖关系,makefile 自动处理头文件的依赖关系
  20. 使用ADB和Python实现手机自动刷视频(快手极速版、抖音极速版)

热门文章

  1. 商用密码算法的实现(常见的密码算法库)
  2. 泛微E9 OA 二次开发创建流程
  3. 自己动手制作系统垃圾清理工具
  4. TypeError: Cannot create property ‘csrq‘ on string ‘‘“
  5. Qt QWebChannel web端js与C++交互
  6. 行业周期分析的主要内容,怎么分析行业生命周期
  7. 计算机专业笔记本电脑华为,适合计算机专业的笔记本电脑有哪些
  8. java 断开tcp连接_处理TCP客户端断开连接
  9. UserAccount权限控制
  10. Android 的Toast(吐丝框)