• 不加sleep(0.5)会出现SSHException: Invalid requirement, parse error at " '' "问题,原因暂时未知。

  • 结论如下

  1. 如果不使用多线程,则不会出现问题
  2. 使用多线程一定要sleep(0.2),也就是多个线程之间一定要有时间间隙
#!/usr/bin/env python
import paramiko
import threading
import sys
import time def ssh(host, user, cmd):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy( paramiko.AutoAddPolicy() )
pkey_file = '/Users/admin/.ssh/id_rsa'
# key = paramiko.RSAKey.from_private_key_file( pkey_file, password='' )
key = paramiko.RSAKey.from_private_key_file( pkey_file, password='' )
try:
ssh.connect( hostname=host, username=user, pkey=key, timeout=5 )
except:
print 'connection has some problems...'
return -1
stdin, stdout, stderr = ssh.exec_command( cmd )
stdout = stdout.read()
stderr = stderr.read()
if stdout:
print '%s: %s' % (host, stdout),
ssh.close()
else:
print '%s: %s' % (host, stderr),
ssh.close()
if __name__ == '__main__':
hosts = ['192.168.31.114', '192.168.31.115', '192.168.31.116', '192.168.31.117']
try:
cmd = sys.argv[1]
except IndexError:
print '%s follow a command must be' % __file__
sys.exit(-1)
for host in hosts:
t = threading.Thread( target=ssh, args=(host, 'root', 'uptime') )
t.start()
time.sleep(0.5) #如果不加此行则会出现下面描述的异常
# ssh(host, 'root', 'uptime')

执行结果如下,有时候就没有异常,有时候就有 ,我网在也找不到合适的结论

192.168.31.116:  11:51:53 up  1:03,  1 user,  load average: 0.07, 0.26, 0.18
192.168.31.114: 11:51:53 up 1:03, 1 user, load average: 0.07, 0.26, 0.18
192.168.31.115: 11:51:53 up 1:03, 1 user, load average: 0.07, 0.26, 0.18
Exception in thread Thread-3:
Traceback (most recent call last):
File "/Users/admin/.pyenv/versions/2.7.13/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/Users/admin/.pyenv/versions/2.7.13/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "parallel.py", line 12, in ssh
key = paramiko.RSAKey.from_private_key_file( pkey_file, password='' )
File "/Users/admin/.pyenv/versions/2.7.13/lib/python2.7/site-packages/paramiko/pkey.py", line 196, in from_private_key_file
key = cls(filename=filename, password=password)
File "/Users/admin/.pyenv/versions/2.7.13/lib/python2.7/site-packages/paramiko/rsakey.py", line 46, in __init__
self._from_private_key_file(filename, password)
File "/Users/admin/.pyenv/versions/2.7.13/lib/python2.7/site-packages/paramiko/rsakey.py", line 174, in _from_private_key_file
self._decode_key(data)
File "/Users/admin/.pyenv/versions/2.7.13/lib/python2.7/site-packages/paramiko/rsakey.py", line 186, in _decode_key
raise SSHException(str(e))
SSHException: Invalid requirement, parse error at "''"
192.168.31.117: 11:51:54 up 1:03, 1 user, load average: 0.07, 0.25, 0.18
192.168.31.115: 11:51:54 up 1:03, 1 user, load average: 0.07, 0.25, 0.18
192.168.31.114: 11:51:54 up 1:03, 1 user, load average: 0.07, 0.25, 0.18
192.168.31.115: 11:51:55 up 1:03, 1 user, load average: 0.07, 0.25, 0.18
192.168.31.116: 11:51:55 up 1:03, 1 user, load average: 0.07, 0.25, 0.18
192.168.31.114: 11:51:55 up 1:03, 1 user, load average: 0.07, 0.25, 0.18
192.168.31.117: 11:51:55 up 1:03, 1 user, load average: 0.07, 0.25, 0.18

python_paramiko_SSHException Invalid requirement, parse error at的更多相关文章

  1. 【Problems】:JSON parse error: Invalid UTF-8 start byte 0xbd;

    简单记录一下 ,我本地开发环境这样写测试时没有问题, @ApiOperation(value="取消关注") @PostMapping("cancelFollow&quo ...

  2. Parse error: syntax error, unexpected T_PUBLIC in 问题解决

    class 类中 public function _getInfo($sn){        $title = '';        $_array = explode('~', $sn);      ...

  3. vxworks一个超级奇怪的错误(parse error before `char')

    void tserver(int id) { if(debug){ useResource(,id);} char msgBuf[MAX_MSG_LEN]; if (msgQReceive(myMsg ...

  4. 使用Parse内付费服务出现的Error Domain=Parse Code=146 "The operation couldn’t be completed. (Parse error 146.)

    因为开发一个应用有个内付费去广告功能,介于苹果官方提供的方法没用过,感觉有些复杂,于是选用了第三方组件Parse来解决这个问题,简单易操作: Parse简化苹果官方内付费问题,使用方法分厂简单只有两个 ...

  5. 解决:sudo: parse error in /etc/sudoers near line 24 ...报错

    ubuntu系统下由于添加用户权限的时候直接用的vim对 /etc/sudoers 文件编辑,保存退出的时候,再使用sudo su 等等命令一直报错如下: sudo: parse error in / ...

  6. [ExtJS5学习笔记]第二十七节 CMD打包错误 Error C2009: YUI Parse Error (identifier is a reserved word => debugger;)

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/41242993 本文作者:sushengmiyan ------------------ ...

  7. 与非java语言使用RSA加解密遇到的问题:algid parse error, not a sequence

    遇到的问题 在一个与Ruby语言对接的项目中,决定使用RSA算法来作为数据传输的加密与签名算法.但是,在使用Ruby生成后给我的私钥时,却发生了异常:IOException: algid parse ...

  8. ORA-00984: 列在此处不允许 SQL parse error location

      ORA-00984: 列在此处不允许SQL parse error location Oracle 插入数据的时候一直提示列在此处不允许.网上搜索答案说是类型不匹配的多,但我的错误确是一个低级错误 ...

  9. 【开发遇到的问题】Spring Mvc使用Jackson进行json转对象时,遇到的字符串转日期的异常处理(JSON parse error: Can not deserialize value of type java.util.Date from String[)

    1.问题排查 - 项目配置 springboot 2.1 maven配置jackson - 出现的场景: 服务端通过springmvc写了一个对外的接口,查询数据中的表,表中有一个字段属性是时间戳,返 ...

随机推荐

  1. Python实现简单HTTP服务器(二)

    实现简单web框架 一.框架(MyWeb.py) # coding:utf-8 import time # 设置静态文件根目录 HTML_ROOT_DIR = "./html" c ...

  2. python MD5步骤

    https://www.cnblogs.com/zipon/p/8340720.html import hashlib def get_token(): md5str = "abc" ...

  3. Networking---poj1287最小生成树

    http://poj.org/problem?id=1287 最小生成树模板题类似的还有:poj1258  hdu1233代码几乎一样: 最小生成树详解 #include<stdio.h> ...

  4. noip做题记录+挑战一句话题解?

    因为灵巧实在太弱辽不得不做点noip续下命QQAQQQ 2018 积木大赛/铺设道路 傻逼原题? 然后傻逼的我居然检查了半天是不是有陷阱最后花了差不多一个小时才做掉我做过的原题...真的傻逼了我:( ...

  5. 【python-opencv】15-图像阈值

    [微语]立志要如山,行道要如水.不如山,不能坚定,不如水,不能曲达 import cv2 as cv import numpy as np from matplotlib import pyplot ...

  6. struts2 OGNL(Object-Graph Navigation Language) 井号,星号,百分号

    1.“#”主要有三种用途: 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext():可以访问这几个ActionContext中的属性. parameter ...

  7. mysql 内置功能 视图 使用

    #语法:CREATE VIEW 视图名称 AS SQL语句 增加了一张表 mysql> create view course2teacher as select * from course in ...

  8. kernel下nand flash的文件系统总结

    1.FLASH转换层(FTL) EXt2/EXT3/EXT4文件系统可以通过FTL实现对flash的支持,因为FTL可以将闪存flash模拟成磁盘结构. 在ext2文件系统的基础上上,为了保证数据的一 ...

  9. Centos安装ELK5.3.2

    一.注意情况 1.elk的版本要一致. 2.ElasticSearch是基于lucence开发的,也就是运行需要java支持.所以要先安装JAVA环境.由于es5.x依赖于JDK1.8,所以需要安装J ...

  10. [LeetCode] 496. Next Greater Element I_Easy tag: Stack

    You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of n ...