内容简介:在很久以前,一帮南京的实施团队来内蒙古部署系统,留下了一个脚本程序,可以快速的登陆到任意主机,而不用输入密码,那个时候就比较好奇,它是怎么做的呢?后来看了一下这个工具的脚本程序,发现后面是一个叫做在我们编写自动化SHELL脚本的时候,免不了需要自动化登陆远程主机,除了上面说的“公钥免密登陆”方法外,还有这里要说的
前言
在很久以前,一帮南京的实施团队来内蒙古部署系统,留下了一个脚本程序,可以快速的登陆到任意主机,而不用输入密码,那个时候就比较好奇,它是怎么做的呢?后来看了一下这个 工具 的脚本程序,发现后面是一个叫做 sshpass
的命令来完成的,那个时候也没有在乎;在后来的运维工作中,要写很多的自动化脚本,要远程登陆到别的主机上去,也是使用的《详解SSH原理》这篇文章中说的“公钥免密登陆”的办法,但是使用“公钥免密登陆”的办法是需要生成公私钥对,同时还涉及到公钥分发,对于一些运维新手来说,经常在这两步犯错误;后来,我又想起了那个使用 sshpass
命令的工具,自己一直未曾使用过这个工具,今天就用这篇文章来对 sshpass
命令一探究竟。
sshpass
是什么?
在我们编写自动化 SHELL 脚本的时候,免不了需要自动化登陆远程主机,除了上面说的“公钥免密登陆”方法外,还有这里要说的 sshpass
方法。
sshpass
是一个简单、轻量级的命令行工具,通过它我们能够向命令提示符本身提供密码(非交互式密码验证)。SSH直接使用TTY访问,以确保密码是用户键盘输入的。 sshpass
在专门的TTY中运行SSH,以误导SSH相信它是从用户接收到的密码,从而实现非交互式密码验证。
使用 sshpass
是不安全的,因为所有系统上的用户在命令行中通过简单的“ps”命令就可看到密码。所以,还是建议使用《详解SSH原理》这篇文章中说的“公钥免密登陆”的办法。
离线安装 sshpass
在CentOS中,离线DVD系统包中是不自带 sshpass
程序的,为了能离线安装 sshpass
,我们只能通过编译源码进行安装。我们通过以下简单的几步可以完成 sshpass
的安装。
- 下载源码: 点击这里进入下载页面
-
得到sshpass-1.06.tar.gz源码包后,就开始编译安装吧。
# 解压源码包 tar -xzf sshpass-1.06.tar.gz # 建立安装目录 mkdir sshpass # 指定安装目录进行编译 cd sshpass-1.06 ./configure --prefix=/home/jelly/sshpass make && make install su - root cp /home/jelly/sshpass/bin/sshpass /usr/bin/sshpass
-
使用
sshpass -V
命令检查是否安装正确。
sshpass
简单使用
在使用 sshpass
命令之前,我们需要对 /etc/ssh/ssh_config
进行修改,将 #StrictHostKeyChecking ask
修改为 StrictHostKeyChecking no
;然后 service sshd restart
重启SSH服务。
-
常用方式一:免密登陆远程主机
# 其中-p选项后面指定密码 sshpass -p '123456' ssh jelly@192.168.1.2 # 从文件的读取密码进行远程登陆 sshpass -f ~/passwd.txt ssh jelly@192.168.1.2
-
常用方式二:免密传送文件
sshpass -p '123456' scp ~/sshpass/bin/sshpass jelly@192.168.1.2:~/
总结
一个小小的命令又是一篇文章,真是学无止境啊!对于这篇文章,以及这篇文章中的这篇文章中的 sshpass
命令,总结完以后,我个人觉的就是“实用”;对于我们提升我们日后的工作效率将会有很大的帮助。知识不在于小,而在于精悍,在于实用, sshpass
这个命令就特别符合,工具虽小,但是实用就好。希望我这里的总结能够帮助到你。好了,如果觉的还不错,可以点击下方的“打赏”哦。
果冻想,认真玩技术的地方。
2019年5月19日,于内蒙古呼和浩特。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- API 交互中怎么做好图片验证码?
- iOS 12 人机交互指南:交互(User Interaction)
- 生活NLP云服务“玩秘”站稳人机交互2.0语音交互场景
- 表单正则验证及文件上传验证功能
- angular 实现同步验证器跨字段验证
- asyncio之子进程交互
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。