python的paramiko模块报错解
写了一个python脚本内容如下:
#-*- coding:utf-8 -*-
__author__ = 'kai'
import paramiko
import sys,os
host = sys.argv[1]
user = 'zk'
passWord = '123'
cmd = sys.argv[2]
s = paramiko.sshClient() #绑定实例
s.load_system_host_keys() #加载本机HOST主机文件
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect(host,22,user,password,timeout=5) #连接远程主机
stdin,stdout,stderr = s.exec_command(cmd) #执行命令
cmd_result = stdout.read(),stderr.read() #读取命令结果
for line in cmd_result:
print line,
s.close()
主要是练习用的,执行之后报错:
#Python paramkio.py localhost df
No handlers could be found for logger "paramiko.transport"
Traceback (most recent call last):
File "paramkio.py", line 16, in <module>
s.connect(host,22,user,password,timeout=5) #连接远程主机
File "build/bdist.linux-x86_64/egg/paramiko/client.py", line 296, in connect
File "build/bdist.linux-x86_64/egg/paramiko/transport.py", line 458, in start_client
paramiko.SSHException: Incompatible ssh peer (no acceptable kex alGorithm)
产生的原因是因为安装的paramiko模块版本太低
查看当前的paramiko版本:pip freeze
lxml==3.4.2
Mysql-python==1.2.5
ndg-httpsclient==0.3.2
oauthlib==0.6.1
oneconf==0.3.7
PAM==0.4.2
paramiko==1.7.6
Pillow==2.7.0
piston-mini-client==0.7.5
pyasn1==0.1.7
pyasn1-modules==0.0.5
pycrypto==2.6.1
pycups==1.9.72
然后直接升级模块版本就行了:pip install paramiko --upgrade
paramiko==1.15.2
重新执行脚本后:
# python paramkio.py localhost df
文件系统 1K-块 已用 可用 已用% 挂载点
udev 1004980 0 1004980 0% /dev
tmpfs 203228 5300 197928 3% /run
/dev/sda1 18447100 3839844 13647156 22% /
tmpfs 1016124 156 1015968 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 1016124 0 1016124 0% /sys/fs/cgroup
cgmfs 100 0 100 0% /run/cgmanager/fs
tmpfs 203228 40 203188 1% /run/user/1000
/dev/sr0 1123872 1123872 0 100% /media/zk/ubuntu 15.04 amd64
搞定
相关文章