python ssh批量登录 自动交互

来源:互联网 发布:哪个网站股票准确数据 编辑:程序博客网 时间:2024/06/08 11:41

用python来ssh远程登录,如果用os.system('commod'),结果就是人机互动,跟不用也没啥区别。

百度发现,可以用pexpect模块来实现自动交互。

# python3import pexpectdef ssh_cmd(ip, passwd):    #a = os.system('ssh ' +s)    ssh = pexpect.spawn('ssh root@%s'%ip)    try:        i = ssh.expect(['password:','continue connecting (yes/no)?'], timeout=2)        if i ==0:            ssh.sendline(passwd)        elif i ==1:            ssh.sendline('yes\n')            ssh.expect('password: ')            ssh.sendline(passwd)        ret = 0    except pexpect.EOF:        print ("EOF")        ssh.close()        ret = -1    except pexpect.TIMEOUT:        print ("TIMEOUT")        ssh.close()        ret = -2    return ret#ssh 192.168.9.2-192.168.0.10的9台机器for i in range(2,11):    ip = '192.168.0.'+str(i)    passwd = 'password'#密码    num= ssh_cmd(ip,passwd)    print (num)
pexpect文档https://pexpect.readthedocs.io/en/stable/api/pexpect.html
参考链接:http://www.cnblogs.com/ma6174/archive/2012/05/25/2508378.html(python3有点问题,ssh.read()会报出错)



阅读全文
0 0
原创粉丝点击