sshpass 配置与用法介绍

sshpass 配置安装

一、sshpass介绍

ssh登陆不能在命令行中指定密码,需要用户交互输入密码,sshpass 的出现,解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,

它支持密码从命令行、文件、环境变量中读取。所以,通过sshpass实现以非交互的形式为ssh提供密码。

二、安装配置

1、下载:目前1.0.5是最新版本,下载地址:

wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz

2、编译安装

#tar xf sshpass-1.05.tar.gz

#cd sshpass-1.05

#./configure

#make && make install

查看安装成功与否:

#which sshpass

/usr/local/bin/sshpass   --安装成功。

3、sshpass用法和命令介绍

#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

三、用法范例

1、从命令行方式传递密码

ssh 端口为默认22的时候:

#sshpass -p userpassword ssh [email protected]

ssh 端口不是默认22的时候,假如为1234

#sshpass -p userpassword ssh -p1234 [email protected]

2、从文件读取密码

#echo "userpassword" > mypasswd

#sshpass -f mypasswd ssh [email protected]

遇到的问题:

第一次从一台服务器使用sshpass登录另一台服务器的时候,有时候执行

#sshpass -p userpassword ssh [email protected] 命令,无响应,也无报错,也无法登录到另一台服务器

原因:对于ssh的第一次登陆,会提示:“Are you sure you want to continue connecting (yes/no)”,这时用sshpass会不好使

解决办法:可以在ssh命令后面加上 -o StrictHostKeyChecking=no来解决

如:

#sshpass -p userpassword ssh -o StrictHostKeyChecking=no [email protected]

Warning: Permanently added ‘10.0.18.156‘ (RSA) to the list of known hosts.

Last login: Thu Nov  5 17:37:51 2015 from 10.0.18.157

这样就登陆成功了

如果不想在命令行中添加-o StrictHostKeyChecking=no参数,可以在sshd配置文件中修改

在所有机器上修改/etc/ssh/ssh_config文件中设置StrictHostKeyChecking no即可(默认为 #StrictHostKeyChecking ask )

3、从环境变量获取密码(测试是可以的)

#export SSHPASS="user_password"

#sshpass -e ssh [email protected]

四、实际工作中的一个小的案例

定期修改服务器(百台左右)密码之后,验证是否修改成功

#cat server_list.cfg

web1

web2

web3

#cat check_passwd.sh

#!/bin/bash

ips=`cat server_list.cfg`

for ip in $ips

do

echo ==========$ip===========

sshpass -p "server_password" ssh [email protected]$ip ":"

[ $? -eq 0 ] && echo -e  "\033[32m ==$ip==password is ok... \033[0m" || echo -e "\033[31m ==$ip==Password is error!!! \033[0m"

done

或者也可以将密码存放在一个文件中,然后使用-f 参数来获取密码

时间: 2024-12-10 11:08:39

sshpass 配置与用法介绍的相关文章

MyEclipse相关用法介绍

MyEclipse相关用法介绍 ================================================================================ 编辑: Ctrl+Shift+L      显示所有快捷键 Ctrl+K        参照选中的词(Word)快速定位到下一个 Ctrl+Shift+K      参照选中的词(Word)快速定位到上一个 Ctrl+O         快速显示OutLine Ctrl+T        快速显示当前类的

Thinkphp里import的几个用法介绍

下面附上import的几个用法介绍 1.用法一 import('@.Test.Translate'); @,表示项目根目录.假定根目录是:App/ 导入类库的路径是:App/Lib/Test/Translate.class.php 结论:import('@')是相对于项目目录的Lib目录而言 2.用法二 import('Think.Test.Translate'); Think,表示系统根目录.既是:./ThinkPHP/ 导入类库的路径是:./ThinkPHP/Lib/Test/Transla

sudo命令用法介绍

sudo命令用法介绍 sudo命令用来以其他身份来执行命令,预设的身份为root.在/etc/sudoers中设置了可执行sudo指 令的用户.若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员.用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码. 语法:sudo(选项)(参数) 选项: -b:在后台执行指令: -h:显示帮助: -H:将HOME环境变量设为新身份的HOME环境变量: -k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密

关于Java中this和super的用法介绍和区别

1.this&super 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的.要注意的是this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this.his也可作为构造函数来使用.在后面可以看到 而什么是super,可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类.super的作用同样是可

(转)常用算法(Algorithm)的用法介绍

2算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. 2<algorithm>是所有STL头文件中最大的一个,其中常用到的功能范围涉及到比较.交换.查找.遍历操作.复制.修改.反转.排序.合并等等. 2<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作. 2<functional>中则定义了一些模板类,用以声明函数对象. 2STL提供

grep过滤用法介绍(一)

grep过滤用法介绍(一) grep主要作用是过滤出指定的行,指定的行满足什么条件,满足的条件我们就可以用一个正则表达式来表示.为了方便下面的实验进行,我们先进行cp /etc/passwd  1.txt 例如:#grep 'root'1.txt,截图如下: 匹配过滤出,有root的行! grep有一个选项很好用: 1.grep --color 'root' 1.txt 标注红色.为了方便使用,我们做一个别名操作,alias cgrep='grep --color'[删除用unalias+别名]

grep过滤用法介绍(二)

grep过滤用法介绍(二) 背景:(1)alias cgrep='grep --color' (2)cp /etc/passwd  1.txt 1. cgrep -n 'root' 1.txt 包含root所在,行数. 2. cgrep -v 'nologin' 1.txt 不包含nologin. 3. cgrep '[0-9]' 1.txt 包含所有0-9中间数字包含任意一个的行. 4. cgrep '[a-zA-Z]' 1.txt 过滤所有字母. 5.cgrep '^[a-z]' 1.txt

Oracle CASE WHEN 用法介绍

Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2. CASE WHEN 在语句中不同位置的用法 2.1 SELECT CASE WHEN 用法 SELECT gra

好压(HaoZip)的命令行模式用法介绍

好压压缩软件,又叫“2345好压”,是一款国产的优秀压缩软件,目前是免费的,据官网介绍,该软件永久免费.官网地址:http://haozip.2345.com/ 本文主要对该软件的命令行模式用法进行介绍.目前,压缩软件支持命令行模式的还有winrar,一款国外的优秀老牌压缩软件,winrar的命令行模式请参考我的另一篇博客: WinRAR的命令行模式用法介绍 - Fetty - 博客园  http://www.cnblogs.com/fetty/p/4769279.html 直接奉上我的测试代码