- 论坛徽章:
- 0
|
最近在学习python ,网上看了下关于自动登录linux服务器的代码,copy下来联系了下发现了些问题:
有的机器是可以登录的没有问题,但是同时用了GSS-API authentication , ssh用root密码是可以登录的,但是用paramiko模块不行
提示:设置了allow_agent=False,look_for_keys=False 依旧
DEBUG:paramiko.transport:userauth is OK
DEBUG:paramiko.transport:Authentication type (password) not permitted.
DEBUG:paramiko.transport:Allowed methods: [u'publickey', u'keyboard-interactive']
代码如下:
import sys
import paramiko
import threading
def ssh2(ip,username,passwd,cmd):
try:
paramiko.common.logging.basicConfig(level=paramiko.common.DEBUG)
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,22,username,passwd,allow_agent=False,look_for_keys=False)
for m in cmd:
stdin,stdout,stderr = ssh.exec_command(m)
stdin.write("y")
out = stdout.readlines()
for o in out:
print(o)
print('{}\tOK\n'.format(ip))
ssh.close()
except paramiko.ssh_exception.BadAuthenticationType:
print('BadAuthenticationType')
except paramiko.ssh_exception.AuthenticationException:
print('AuthenticationException')
except paramiko.ssh_exception.BadHostKeyException:
print('BadHostKey')
except:
print('{}\tError\n'.format(ip))
if __name__=='__main__':
cmd = ['shutdown -h now']
username ='root'
passwd = 'tencent'
threads = []
ip='192.168.120.128'
a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd))
a.start() |
|