sshpass: 用于非交互的ssh 密码验证

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

$> 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

   -h Show help (this screen)
   -V Print version information
At most one of -f, -d, -p or -e should be used

sshpass [-f|-d|-p|-e] [-hV] command parameters 中的 command parameters 和使用交互式密码验证的使用方法相同

#从命令行方式传递密码

$> sshpass -p user_password ssh [email protected]192.168..1.2
$> sshpass -p user_password scp -P22 192.168.1.2:/home/test/t . 

#从文件读取密码

$> echo "user_password" > user.passwd
$> sshpass -f user.passwd ssh [email protected]192.168..1.2

#从环境变量获取密码

$> export SSHPASS="user_password"
$> sshpass -e ssh [email protected]192.168..1.2

对于ssh的第一次登陆,会提示:
“Are you sure you want to continue connecting (yes/no)”,这时用sshpass会不好使,可以在ssh命令后面 -o StrictHostKeyChecking=no
来解决。比如说上面的命令,就可以写作
ssh  [email protected] -o StrictHostKeyChecking=no

PS:

源码位置:http://sourceforge.net/projects/sshpass/

时间: 2024-08-10 19:17:10

sshpass: 用于非交互的ssh 密码验证的相关文章

sshpass之非交互SSH密码验证

SSH登陆不能在命令行中指定密码.sshpass用于非交互SSH的密码验证,一般用在shell脚本中,无须手动输入密码.它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行.文件.环境变量中读取. 一.安装sshpass: 1. 通过源码编译安装 # http://sourceforge.net/projects/sshpass/ 下载地址 $ tar -zxvf sshpass-xx.tar.gz $ ./configure $ make && make ins

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

ssh登陆不能在命令行中指定密码.sshpass的出现,解决了这一问题.sshpass用于非交互SSH的密码验证,一般用在sh脚本中,无须再次输入密码. 它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行.文件.环境变量中读取. 下载如下: https://sourceforge.net/projects/sshpass/ 解压,安装 [[email protected] opt]# tar zxvf sshpass-1.06.tar.gz [[email prote

交换机配置ssh密码验证登录方式

交换机配置ssh密码验证登录方式 一.背景: 1.由于PC机串口不支持热插拔,请不要在交换机带电的情况下,将串口插入或者拔出PC机.当连接PC和交换机时,请先安装配置电缆的DB-9端到PC机,再连接RJ-45到交换机:在拆下时,先拔出RJ-45端,再拔下DB-9端. 2.恢复出厂设置的交换机 <H3C>reset saved-configuration 3.重启设备 必须重启才能生效 二.VLAN配置 1.删除vlan 系统模式下:undo vlan ID号 2.创建vlan [H3C]vla

Shell命令sshpass非交互SSH密码验证

#安装sshpasssshpass 下载地址:http://sourceforge.net/projects/sshpass/ 下载为一个 tar.gz的压缩包. $ tar -zxvf sshpass-1.05.tar.gz $ cd sshpass-1.05 $ ./configure --prefix=/opt/sshpass #指定安装目录 $ make $ make install $ cp /opt/sshpass/bin/sshpass /usr/bin/ 安装完成 #查看帮助 s

开启SUSE Linux的SSH密码登陆

一般来说,刚安装好的SUSE Linux系统默认是可以使用ssh2登陆的,但是不能使用ssh密码登陆.(目前我接触到的suse10.suse11,suse12系统刚安装好都是不支持ssh密码验证登陆的) (1)登陆系统 ① 如果使用的是SecureCRT,Xshell等支持SSH2协议的工具,可以先使用SSH2协议登录系统. ② 如果开启了telnet,也可以使用telnet登陆. ③ 如果有系统管理员权限,直接通过KVM等管理工具操作就行. (2)打开SSH密码登陆,操作如下: 关闭防火墙(和

linux下自动化格式分区方法(非交互,可以用于shell脚本)

自动化格式分区方法----非交互---可用于脚本 要先给用户一个提示,让他选择一个分区来格式化 for i  in `mount|grep  "/dev/sdb"|awk '{print $1}'` do fuser –km $i;umount $i done dd if=/dev/zero  of=$PartDisk bs=512  count=1 sync;sleep 3 echo 'n p 1 +20M n p 2 +512M n p 3 +128M t 3 82 w'|fdis

mysql, ssh实现非交互

mysql非交互 mysql [options] << EOF 代码段 EOF ssh非交互 yum -y install epel-release yum -y install sshpass sshpass -p 'yourpass' ssh [email protected] 'command' 原文地址:http://blog.51cto.com/sonlich/2114154

ssh登陆强制使用密码验证登陆

Linux系统使用ssh进行登陆,可以采用密码登陆和秘钥登陆.采用密码登陆每次需要输入密码进行验证,验证通过则可登陆到环境. 秘钥登陆为在服务器的客户端生成相应的公钥和私钥,公钥用于加密,私钥用于解密.然后将公钥发给需要连接的服务端.当客户端需要连接服务端时,服务端利用公钥将用户名和密码加密发送给客户端,客户端利用对应的私钥进行解密,验证通过则可登陆到服务端. 有时根据需要,我们需要强制使用密码验证的方式进行登陆. 采用强制密码登陆方式设置如下: 在客户端的/root/.ssh/目录下的conf

CentOS 6.4配置SSH免密码验证

一.环境 CentOS 6.4x64位 zabbix-c1:192.168.3.29 zabbix-c2:192.168.3.30 二.配置从zabbix-c1进行ssh到zabbix-c2免密码验证 在zabbix-c1上生成密钥对,整个过程回车即可. [[email protected] ~]# ssh-keygen  Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh