实现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
 

于是把sshpass和ssh命令集合就能实现ssh登录的时候加入密码了,这样把登录某台计算机的命令写成shell脚本,后面就十分的方便了

#!/bin/bash
sshpass -p "XXX" ssh user@IP

#sshpass -p "1234" ssh -p 22 root@192.168.35.12 'ls'
————————————————
版权声明:本文为CSDN博主「念念不忘的旧情人」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a1010256340/article/details/90234763

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值