Python paramiko ssh 远程连接防火墙时报错-Max try count must be an positive integer

需要使用python远程连接防火墙,使用paramiko远程连接并远程执行shell指令报错:

调用的代码如下:

def ssh_normal(remote_ip,ssh_port,user_name,passs_word,cmd):
    try:
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(remote_ip,username=user_name,password=passs_word,allow_agent=True)
        stdin, stdout, stderr = ssh.exec_command(cmd)
        print stdout.readlines()
        print stderr.readlines()
    except Exception, e:
        print e
    finally:
         ssh.close()

在执行

ssh.exec_command(cmd)

时,报错:Max try count must be an positive integer。不太清楚报错的原因,可能是安全策略的原因,改为以下代码后可以顺利连通并远程执行命令:

def ssh(remote_ip,username,password,cmds,port=22):
    client = paramiko.SSHClient()
    result=""
    try:
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        client.connect(remote_ip, port, username, password, timeout=20)
        remote_conn = client.invoke_shell()
        for cmd in cmds:
            remote_conn.send('\n')
            time.sleep(delay)
            remote_conn.send(cmd)
            time.sleep(delay)
            remote_conn.send('\n')
            time.sleep(delay)
            result+=str(remote_conn.recv(buffer_size))
    except Exception, e:
        print e
        result=str(e)
    finally:
        client.close()
    return result

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值