• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Linux自动密码登陆利器sshpass

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

通过ssh登陆其他机器时,需要手动输入密码,批量操作多台机器时,非常不便;而借助expect来设置自动输入密码,实现起来也略显复杂。

sshpass可以非常方便地解决自动密码登陆的问题,其常见用法为:

sshpass -p ${yourpassword} ssh ${username}@${ip} "ls -al 0</dev/null"

其中${username}@${ip}是要登录的机器账号和地址,${yourpassword}是该机器的密码。

不过,sshpass一般不是linux系统的标配,需要手动安装。安装起来也比较简单,步骤如下(root账号下):

  1. 下载sshpass, 下载地址:http://sourceforge.net/projects/sshpass/
  2. 解压tar xzvf  sshpass-1.05.tar.gz
  3. cd sshpass-1.05
  4.  ./configure
  5.  make && make install
  6. 安装成功后即可直接通过sshpass命令使用。

下面是通过sshpass来自动遍历多台机器根目录的shell脚本示例:


#!/bin/bash

if [ $# -ne 0 ]
then
	echo "Usage: $0"
	exit 1
fi

mypass="abc123@#$"
ips=(10.71.48.125 10.71.48.126 10.71.48.127 10.71.48.128)
for ip in ${ips[@]}
do
	echo "process ip:${ip}"
	sshpass -p ${mypass} ssh root@${ip} "ls -al / 0</dev/null" 0</dev/null
done

exit 0

注意:ssh第一次登录是,可能会出现下面的提示,这会导致sshpass使用失效, 返回错误码6。

The authenticity of host ‘xxxxxx’ can’t be established

RSA key fingerprint is xxxx

Are you sure you want to continue connecting (yes/no)?

这时候可以vim打开/etc/ssh/ssh_config,添加下面的命令

StrictHostKeyChecking no

这样的话,无论ssh是否第一次登录,sshpass都可以正常执行了。

 


鲜花

握手

雷人

路过

鸡蛋
专题导读
上一篇:
C函数qsort在多线程下core dump分析【转】发布时间:2022-05-14
下一篇:
基于Hadoop MapReduce的矩阵乘法实现发布时间:2022-05-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap