sshpass-Linux命令之非交互SSH密码验证

本文介绍sshpass工具,用于解决ssh登录时无法在命令行指定密码的问题,支持密码从命令行、文件或环境变量读取,适用于sh脚本自动化操作。文中详细讲解了sshpass的安装和使用方法。

sshpass-Linux命令之非交互SSH密码验证

https://www.cnblogs.com/kaishirenshi/p/7921308.html

ssh登陆不能在命令行中指定密码。sshpass的出现,解决了这一问题。sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码。

它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。

当然明文密码不安全啦,使用场景比较有限。

 

使用前提:对于未连接过的主机。而又不输入yes进行确认,需要进行sshd服务的优化:

# vim /etc/ssh/ssh_config   
StrictHostKeyChecking no

# vim /etc/ssh/sshd_config  
GSSAPIAuthentication no
UseDNS no

# service sshd restart 

Centos安装

# 源码包安装
 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.tar.gz 
 ./configure 
 make 
 make install 

# yum安装
yum  -y install sshpass

使用

#明文密码
[root@136 ~]# sshpass -p 123456 ssh root@192.168.0.137
Last login: Wed Apr 16 15:35:22 2018 from 192.168.0.136
[root@137 ~]# exit
logout
Connection to 192.168.0.137 closed.

#文件密码-f filename #后跟保存密码的文件名,密码是文件内容的第一行。
[root@136 ~]# cat 1.txt
123456
[root@137 ~]# sshpass -f 1.txt  ssh root@192.168.0.137
Last login: Fri Apr 18 13:48:20 2014 from 192.168.0.136
[root@137 ~]# exit
logout
Connection to 192.168.0.137 closed.

#密码设置变量
#-e #将环境变量SSHPASS作为密码
[root@136 ~]# export SSHPASS=123456
[root@136 ~]# sshpass -e  ssh root@192.168.0.137
Last login: Fri Apr 18 13:51:45 2018 from 192.168.0.136

#从远程主机上拉取文件到本地
#sshpass -p '123456' scp root@host_ip:/home/test/t ./tmp/

 

转载于:https://www.cnblogs.com/wangxu01/articles/10784285.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值