Python利用paramiko实现ssh登陆服务器三次密码验证-2(装饰器)

1、 三次输入密码验证装饰器
#-*- coding:utf-8 -*-
import paramiko
import datetime
import os

ip ='172.30.6.21'
username ='root'
cmd="hostname"

def auth(func):
    def wrapper(*args, **keargs):
        for n in range(3) :
            try:
                res = func(*args, **keargs)
                return res
            except Exception as e:
                if n < 2:
                    print('%s\tError\t%s' % (args[0], e))
                    print('输入密码错误请重新输入!')
                else:
                    print('%s\tError\t%s' % (args[0], e))
                    res = bytes('\033[0;31m主机登陆失败,继续下一主机\033[0m', encoding='utf-8')
                    return res
    return wrapper
2、 调用装饰器实现登陆验证
@auth # 装饰器   最多输入三次密码
def ssh2(ip,username,cmd):
    passwd = input('请输入主机(%s)   %s用户密码:' % (ip, username))
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(ip, 22, username, passwd, timeout=5)
    stdin, stdout, stderr = ssh.exec_command(cmd)
    out = stdout.read()
    return out

a = ssh2(ip,username,cmd)
print(a.decode())

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值