博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
paramiko安装及使用
阅读量:6160 次
发布时间:2019-06-21

本文共 5677 字,大约阅读时间需要 18 分钟。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
我的博客已迁移到xdoujiang.com请去那边和我交流
一、基础环境
1、角色、ip、版本、内核
serverA 10.1.10.117 3.2.0-4-amd64 7.8 python pycrypto paramiko ecdsa
python-2.7.3
pycrypto-2.6.1
paramiko-1.15.3
pycrypto-2.6.1.
tar
.gz
ecdsa-0.13.
tar
.gz
paramiko-1.15.3.
tar
.gz
 
二、apt方式安装paramiko
1、安装基础包
apt-get -y 
install 
gcc python-dev python-setuptools
 
2、安装pip命令
easy_install pip
 
3、查询下是否有安装的包
1)pip search 
"pycrypto"
pycrypto             - Cryptographic modules 
for 
Python.
2)pip search 
"paramiko"
paramiko             - SSH2 protocol library
 
4、使用pip方式安装
1)pip 
install 
pycrypto
Collecting pycrypto
/usr/local/lib/python2
.7
/dist-packages/pip-7
.1.2-py2.7.egg
/pip/_vendor/requests/packages/urllib3/util/ssl_
.py:90: InsecurePlatformWarning: A 
true 
SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For 
more 
information, see https:
//urllib3
.readthedocs.org
/en/latest/security
.html
#insecureplatformwarning.
  
InsecurePlatformWarning
  
Downloading pycrypto-2.6.1.
tar
.gz (446kB)
    
100% |████████████████████████████████| 446kB 96kB
/s 
Installing collected packages: pycrypto
  
Running setup.py 
install 
for 
pycrypto
Successfully installed pycrypto-2.6.1
/usr/local/lib/python2
.7
/dist-packages/pip-7
.1.2-py2.7.egg
/pip/_vendor/requests/packages/urllib3/util/ssl_
.py:90: InsecurePlatformWarning: A 
true 
SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For 
more 
information, see https:
//urllib3
.readthedocs.org
/en/latest/security
.html
#insecureplatformwarning.
  
InsecurePlatformWarning
2)pip 
install 
paramiko
Collecting paramiko
/usr/local/lib/python2
.7
/dist-packages/pip-7
.1.2-py2.7.egg
/pip/_vendor/requests/packages/urllib3/util/ssl_
.py:90: InsecurePlatformWarning: A 
true 
SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For 
more 
information, see https:
//urllib3
.readthedocs.org
/en/latest/security
.html
#insecureplatformwarning.
  
InsecurePlatformWarning
  
Downloading paramiko-1.15.3-py2.py3-none-any.whl (166kB)
    
100% |████████████████████████████████| 167kB 104kB
/s 
Collecting ecdsa>=0.11 (from paramiko)
  
Downloading ecdsa-0.13-py2.py3-none-any.whl (86kB)
    
100% |████████████████████████████████| 90kB 165kB
/s 
Requirement already satisfied (use --upgrade to upgrade): pycrypto!=2.4,>=2.1 
in 
/usr/local/lib/python2
.7
/dist-packages 
(from paramiko)
Installing collected packages: ecdsa, paramiko
Successfully installed ecdsa-0.13 paramiko-1.15.3
 
三、测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
四、
tar
包安装paramiko
1、安装基础包
apt-get -y 
install 
gcc python-dev
 
2、下载pycrypto
wget --no-check-certificate https:
//pypi
.python.org
/packages/source/p/pycrypto/pycrypto-2
.6.1.
tar
.gz
#md5=55a61a054aa66812daf5161a0d5d7eda
 
3、解压并进入相关目录
tar 
zxvf pycrypto-2.6.1.
tar
.gz && 
cd 
pycrypto-2.6.1 
 
4、检查环境
.
/configure
 
5、编译安装
python setup.py build && python setup.py 
install
 
6、下载ecdsa
wget --no-check-certificate https:
//pypi
.python.org
/packages/source/e/ecdsa/ecdsa-0
.13.
tar
.gz
#md5=1f60eda9cb5c46722856db41a3ae6670
 
7、解压并进入相关目录
tar 
zxvf ecdsa-0.13.
tar
.gz && 
cd 
ecdsa-0.13
 
8、编译安装
python setup.py build && python setup.py 
install
 
9、下载paramiko
wget --no-check-certificate https:
//pypi
.python.org
/packages/source/p/paramiko/paramiko-1
.15.3.
tar
.gz
#md5=c959088669f8d951585aa6abc25c8ef6
 
10、解压并进入相关目录
tar 
zxvf paramiko-1.15.3.
tar
.gz && 
cd 
paramiko-1.15.3
 
11、

1
2
3
4
12、编译安装
python setup.py build && python setup.py 
install
 
五、测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
六、使用paramiko模块(eg:多台服务器查询)
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
#--------------------------------------------------
#Author:jimmygong
#Email:jimmygong@taomee.com
#FileName:paramiko.py
#Function: 
#Version:1.0 
#Created:2015-10-13
#--------------------------------------------------
import 
re
import 
fileinput
import 
os
import 
sys
import 
paramiko
host=
"host.txt"
cmd=
"cmd.txt"
if 
os.path.isfile(host) and os.path.isfile(cmd):
    
print 
"%s and %s exists,you can continue" 
% (host,cmd)
else
:
    
print 
"%s or %s is lost,please check!" 
% (host,cmd)
    
sys.
exit
()
port=22
user=
"root"
password=
"redhat"
i=0
cmd1=
"cat %s|grep '10.1'|wc -l" 
% host
num1=os.popen(cmd1).
read
().strip()
s=paramiko.SSHClient()
s.load_system_host_keys()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
for 
line 
in 
fileinput.input(host,inplace=0):
    
if 
re.search(
"10.1"
,line):
        
i+=1
        
host=line.strip()
        
t=paramiko.Transport((host,port))
        
t.connect(username=user,password=password)
        
s.connect(host,port,user,password,timeout=5)
        
f=
open
(cmd)
        
while 
True:
              
cmd_line=f.readline()
              
if 
len(cmd_line) == 0:
break
              
stdin,stdout,stderr=s.exec_command(cmd_line)
              
cmd_result=stdout.
read
(),stderr.
read
()
              
for 
result 
in 
cmd_result:
                  
print 
"\033[32m %s \033[0m\n" 
% result,
        
f.close()
        
print 
"\x1B[0;33m %d/%d %s\x1B[0m" 
% (int(i),int(num1),line)
        
m=i
    
else
:
            
pass
print 
"\033[32m allnum %d \033[0m\n" 
% int(m)
print 
"#"
*40
s.close()
PS:相关文件
cat 
cmd.txt 
crontab 
-l
cat 
host.txt 
10.1.10.185
10.1.10.24
 
七、效果

1
2
3
4
5
6
八、参考文章
https:
//pypi
.python.org
/pypi/pycrypto
https:
//pypi
.python.org
/pypi/paramiko
https:
//pypi
.python.org
/pypi/ecdsa/
https:
//github
.com
/paramiko/paramiko/
http:
//docs
.paramiko.org
/en/1
.15
/api/agent
.html
本文转自 xdoujiang 51CTO博客,原文链接:http://blog.51cto.com/7938217/1702704,如需转载请自行联系原作者
你可能感兴趣的文章
HP DL380G4服务器前面板指示灯的含义
查看>>
数据结构_树结构
查看>>
常用URL地址
查看>>
每天一个linux命令(19):find 命令概览
查看>>
MySQL kill操作
查看>>
windows下看端口占用
查看>>
Decommissioning a Domain Controller 降域控
查看>>
Character中的奇葩
查看>>
c++书籍推荐
查看>>
互联网通用架构技术----缓存雪崩
查看>>
Dell R710服务器磁盘恢复数据库一例(记录)
查看>>
轻松监听Azure service health 状态
查看>>
获取SQL SERVER某个数据库中所有存储过程的参数
查看>>
在Linux下编译安装Apache2(2)
查看>>
Method Swizzling 处理一类简单的崩溃
查看>>
AngularJS学习!
查看>>
在Eclipse中搭建Python Django
查看>>
struts国际化
查看>>
Laravel 5.0 - Middleware (中间件)
查看>>
文件特殊权限及facl
查看>>