https://blog.csdn.net/levy_cui/article/details/51752861

 

想实现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
———————
作者:levy_cui
来源:CSDN
原文:https://blog.csdn.net/levy_cui/article/details/51752861
版权声明:本文为博主原创文章,转载请附上博文链接!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注