UnicodeDecodeError: 'utf-8' c…
2018-08-17 09:46:58来源:博客园 阅读 ()
需求:python如何实现普通用户登录服务器后切换到root用户再执行命令
解决参考:
代码:
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('export LANGUAGE=en \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('测试IP地址', '普通账号', '普通账号的密码', '52222', 'root密码', 'id')
遇到问题:
思路:经过检查发现这个是中文字符集和英文字符集返回密码格式不同导致的,在代码中加入:ssh.send(' export LANG=en_US.UTF-8 \n'),即可解决上述问题
因为中文和英文字符集转换不同,所以导致报错。
补充:由于操作系统字符集中‘LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"’的缘故,即使修改了LANG也是无用的,入下图
此时还需将LANGUAGE的变量值修改:export LANGUAGE=en
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Python连载30-多线程之进程&线程&线程使用 2019-08-13
- Python连载25-函数tell&write&writeline$&a 2019-07-24
- Python连载24-函数list&read&seek 2019-07-24
- python中time.strftime不支持中文,报错UnicodeEncodeError: 2019-07-24
- Django源码安装xadmin报错Apps aren't loaded yet. 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash