UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 0: invalid continuation byte

匿名 (未验证) 提交于 2019-12-02 22:11:45

解决参考:

代码:

def verification_ssh(host,username,password,port,root_pwd,cmd):     s=paramiko.SSHClient()     s.load_system_host_keys()     s.set_missing_host_key_policy(paramiko.AutoAddPolicy())     s.connect(hostname = host,port=int(port),username=username, password=password)      if username != 'root':         ssh = s.invoke_shell()         time.sleep(0.1)         ssh.send(' export LANG=en_US.UTF-8 \n') #解决错误的关键,编码问题         ssh.send('su - \n')          buff = ""         while not buff.endswith('Password: '): #true             resp = ssh.recv(9999)             print(resp)             buff +=resp.decode('utf8')          print('hhhhh')         print(buff)          ssh.send(root_pwd)         ssh.send('\n')          buff = ""         # n = 0         while not buff.endswith('# '):             # n += 1             resp = ssh.recv(9999)             print(resp)             buff +=resp.decode('utf8')             # print(n)             # if n >=3:             #     break            # print(buff)          ssh.send('sh /tmp/check/101.sh') #放入要执行的命令         ssh.send('\n')         buff = ''         # m = 0         while not buff.endswith('# '):             resp = ssh.recv(9999).decode()             buff +=resp             # m += 1             # print(m)          result  = buff         # print(type(result))         # print(result)         s.close()  if __name__ == "__main__":     verification_ssh('172.25.240.164', 'cattsoft', 'Cat@2018', '52222', 'Huawei12#$', 'id')

遇到问题:

思路:经过检查发现这个是中文字符集和英文字符集返回密码格式不同导致的,在代码中加入:ssh.send(' export LANG=en_US.UTF-8 \n'),即可解决上述问题

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!