0
点赞
收藏
分享

微信扫一扫

shell使用sshpass自动验证ssh密码

丹柯yx 2022-04-06 阅读 65

服务器密码一般就那么几个,但不想一个个手输尝试,也为了避免手敲错了,就简单写个脚本去验证密码。

  1. 安装sshpass

sudo yum install sshpass
  1. 向指定ip主机验证正确的密码并记录

#!/bin/bash
## file name: getPassword.sh
 
## 要测试的IP,是参数传入的
test_ip=$1
## 密码列表,空格分隔
pwd_lists="123456 admin root !QAZ2wsx"
## 记录找到密码的文件
psss_history_file="pwd_history.txt"
 
## 判断,如果没有写参数则,提示并退出
if [ $# -eq 0  ];then
    echo -e "\nUage: \n\tsh $0 127.0.0.1"
    exit
fi
 
## 打印历史密码
echo -e "\n-----------------  history passwd  -----------------"
cat ${psss_history_file} |grep ${test_ip}
echo -e "-----------------  history passwd  -----------------\n"

#IFS=$'\n' 
## 循环遍历
for pwd_list in ${pwd_lists}
do
    sshpass -p ${pwd_list} ssh -o StrictHostKeyChecking=no root@${test_ip} "exit"
        ## 判断sshpass执行是否成功
    if [ $? -eq 0 ];then
        ## 提示信息,当前正在测试的IP 和密码
        echo -e "\n[ Success ] IP=\"$1\"  password=\"${pwd_list}\" "
                ## 将找到的密码保存到文件里
        echo "$1:${pwd_list}" >> ${psss_history_file}
        ## 找到密码后,退出脚本,不是退出循环
        exit
    else
                ## 提示当前这个密码没有成功
        echo "[ Failure ] password=\"${pwd_list}\""
    fi
done
echo "$1:" >> ${psss_history_file}

  1. 读取ip列表尝试ssh登录密码

#!/bin/bash
IFS=$'\n'
for line in `cat ipList.txt`
do
  echo $line
  ./getPassword.sh $line
done
举报

相关推荐

0 条评论