美文网首页
python 多线程ssh检查服务器密码

python 多线程ssh检查服务器密码

作者: 随便写点什么就好 | 来源:发表于2020-10-23 20:19 被阅读0次

概述

主要是实现批量检查一下服务器的用户和密码是否正确. 有很多服务器,账号,端口,密码都有集中组合. 如何实现快速检查密码.

  1. 利用python的paramiko可以实现ssh连接,甚至交互式命令
  2. 利用多线程迅速进行扫描
  3. 后续还可以结合修改密码去设新的密码. 设成定时任务.
  4. 实际上主机列表要接cmdb或者ansible的host,检查到可以筛选出来,用ansible-play批量修改。
#!/usr/bin/env python3
import sys
import getpass
import paramiko
import threading
import os

#多线程扫描服务器的root密码,输出列表.

#创建函数实现远程连接主机、服务器密码以及在远程主机上执行的命令的功能
def remote_comm(host,port,user,pwd, command):
#创建用于连接ssh服务器的实例
    ssh = paramiko.SSHClient()
    #print("now,we run %s %d %s %s"%(host,port,user,command))
#设置自动添加主机密钥
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接ssh服务器,添加连接的主机、用户名、密码填好,捕获异常,有异常则跳出函数
    try:
        ssh.connect(hostname=host,port=port,username=user,password=pwd)
        # 在ssh服务器上执行指定命令,返回3项类文件对象,分别是,输入、输出、错误
        try:
            stdin, stdout, stderr = ssh.exec_command(command)
            # 读取输出
            out = stdout.read()
            # 读取错误
            error = stderr.read()
            # 如果有输出
            if out:
                # 打印主机输出内容
                print("%s %d %s SDF%s23sawe  密码正确" % (host, port,user,pwd))
                #print('[%s] OUT:\n%s' % (host, out.decode('utf8')))
            # 如果有错误
            if error:
                # 打印主机错误信息
                print('[%s] ERROR:\n%s' % (host, error.decode('utf8')))
            # 程序结束
            ssh.close()
        except:
            #print("%s %d %s %s   连接得上,命令返回错误"%(host,port,user,pwd))
            pass

    except:
        #print("%s %d  %s  %s   ssh这个用户连接不上"%(host,port,user,pwd))
        return

if __name__ == '__main__':
    #实际上一般读取数据库或者文本文件或者ip列表
    ips = ["192.168.11.79", "192.168.12.12","10.10.17.200","10.10.17.201","10.10.17.202"]
    portlist = [22, 2016]
    userlist = ["root", "wx"]
    passwdlist = ["PSDKFLsdwewf", "123.com.com"]
    command = "df"


    for pwd in passwdlist:
        for user in userlist:
            for port in portlist:
                for ip in ips:
                #将读取到的ip地址作为remote_comm函数实际参数传递给函数,ips中有几个ip地址循环几次
                #创建多线程
                    t = threading.Thread(target=remote_comm, args=(ip,port,user,pwd,command))
                    #启用多线程
                    t.start()


image.png

相关文章

  • python 多线程ssh检查服务器密码

    概述 主要是实现批量检查一下服务器的用户和密码是否正确. 有很多服务器,账号,端口,密码都有集中组合. 如何实现快...

  • 设置ssh快捷命令

    经常要用ssh登录远程服务器,每次都输入用户名和密码比较麻烦。可以设置一下ssh免密码和ssh服务器别名。 ssh...

  • linux常用命令

    ssh连接服务器 ssh 用户名@服务器IPexp:ssh root@192.186.2.177回车,输入密码,...

  • day1_Linux基本命令

    登录服务器命令 ​ 登录服务器:①ssh root@47.95.9.84 ②yes ③输入密码密码 ​ ...

  • Linux 简单命令

    ssh 连接服务器 ssh 用户名@服务器地址 输入密码---》可以登录服务器 登出服务器 exit -...

  • 服务器上传文件

    scp 上传 1 登陆服务器 cd ~/.ssh ssh root@192.168.1.28 (提示密码:...

  • 云服务器运行python文件

    用云服务器爬取数据,首先要在本地终端使用ssh登陆 ssh 用户名@服务器IP 然后会提示输入密码,密码是服务器的...

  • rsync 无密码 传输

    1.通过ssh执行rsync(需要密码) 通过ssh帐户(需要密码)执行rsync,将文件同步镜像到远程服务器。 ...

  • AWS 配置 root ssh

    设置root密码 安装并打开ssh服务 检查ssh开启情况 开启ssh服务: 修改sshd_config配置: 重...

  • SSH 命令行

    ssh登陆服务器 ssh 用户名@ip随后输入密码即可如:ssh root@172.19.2.75 把本地文件拷贝...

网友评论

      本文标题:python 多线程ssh检查服务器密码

      本文链接:https://www.haomeiwen.com/subject/bikbmktx.html