python ssh批量登入 自動互動
阿新 • • 發佈:2019-01-05
用python來ssh遠端登入,如果用os.system('commod'),結果就是人機互動,跟不用也沒啥區別。
百度發現,可以用pexpect模組來實現自動互動。
pexpect文件https://pexpect.readthedocs.io/en/stable/api/pexpect.html# python3 import pexpect def ssh_cmd(ip, passwd): #a = os.system('ssh ' +s) ssh = pexpect.spawn('ssh [email protected]%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)
參考連結:http://www.cnblogs.com/ma6174/archive/2012/05/25/2508378.html(python3有點問題,ssh.read()會報出錯)