linux ssh密码验证,sshpass实现Linux非交互SSH密码验证

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//sshpass

make && make install

su - root

cp /home//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 @192.168.1.2

# 从文件的读取密码进行远程登陆

sshpass -f ~/passwd.txt ssh @192.168.1.2

常用方式二:免密传送文件sshpass -p '123456' scp ~/sshpass/bin/sshpass @192.168.1.2:~/

总结

一个小小的命令又是一篇文章,真是学无止境啊!对于这篇文章,以及这篇文章中的sshpass命令,总结完以后,我个人觉的就是“实用”;对于我们提升日后的工作效率将会有很大的帮助。知识不在于小,而在于精悍,在于实用,sshpass这个命令就特别符合,工具虽小,但是实用就好。希望我这里的总结能够帮助到你。

本文来自投稿,不代表访得立场,如若转载,请注明出处:http://www.found5.com//view/510.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值