sshpass实现ssh自动输入密码登陆服务器

想实现ssh自动输入密码登录,网上搜了一下,主要有两种方法:1、生成公钥。2、编写expect脚本。

这两种方法,用起来都有点复杂,偶然发现一个sshpass,其实sshpass的用法很简单。

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

centos6安装 sshpass安装:
源码下载地址:http://sourceforge.net/projects/sshpass/

tar -zxvf sshpass-1.05.tar.gz
cd sshpass-1.05
./configure
make && make install

或者

cd /etc/yum.repos.d/
wget http://download.opensuse.org/repositories/home:Strahlex/CentOS_CentOS-6/home:Strahlex.repo
yum install sshpass

安装完成后输入sshpass出现如下提示即安装成功:
[root@test ~]# sshpass
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 参数 SSH命令(ssh,sftp,scp等)。

参数:
    -p password    //将参数password作为密码。
    -f passwordfile //提取文件passwordfile的第一行作为密码。
    -e        //将环境变量SSHPASS作为密码。

比如说:
    sshpass abc@192.168.1.5:/home/test /root   这个命令的作用是将服务器端文件test传到本地文件夹/root下。
    利用sshpass,假设密码为efghi,则可写作:
    sshpass -p efghi scp abc@192.168.1.5:/home/test /root

另外,对于ssh的第一次登陆,会提示:“Are you sure you want to continue connecting (yes/no)”,这时sshpass不好用了,可以在ssh命令后面加上 -o StrictHostKeyChecking=no来解决。

比如说上面的命令,就可以写作sshpass -p efghi scp abc@192.168.1.5:/home/test /root -o StrictHostKeyChecking=no
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值