【收藏】python的paramiko模块使用

12 篇文章 0 订阅

【安装】

依赖模块:PyCrypto - The Python Cryptography Toolkit

       wget http://www.lag.net/paramiko/download/paramiko-1.7.6.tar.gz

  wget http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.4.1.tar.gz

1、安装pycrypto

<span style="white-space:pre">	</span>$ tar -zxvf pycrypto-2.0.1.tar.gz
        $ cd pycrypto-2.0.1
        $ python setup.py build
        $ sudo python setup.py install
2、安装 paramiko

        $ tar -zxvf paramiko-1.7.6.tar.gz
        $ cd paramiko-1.7.6
        $ python setup.py build
        $ sudo python setup.py install
【安装可能遇到的问题】「基于CentOS,Ubuntu,Python 2.7.3 」

如果在安装pycrypto2.0.1时发生如下错误

        command 'gcc' failed with exit status 1

  view plain <strong>[/pycrypto-2.0.1]$ sudo python setup.py build running build running build_py running build_ext building 'Crypto.Hash.MD2' extension gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector ——param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fPIC -Isrc/ -I/usr/include/python2.4 -c src/MD2.c -o build/temp.linux-x86_64-2.4/src/MD2.o unable to execute gcc: No such file or directory error: command 'gcc' failed with exit status 1</strong>解决方案1:

  可能是缺少python-dev安装包导致

解决办法:

CentOS 

yum -y install python-dev* 
ubuntu

sudo apt-get install python-dev
如果上述办法不能解决,则是gcc没有安装,请安装gcc


【使用】

1、密码方式登录

#!/usr/bin/env python

import paramiko

#远程服务器
hostname = ‘192.168.0.1’
#端口
port = 22
#用户名
username = ‘Dominic’
#密码
password = ‘123456’
#创建SSH连接日志文件(只保留前一次连接的详细日志,以前的日志会自动被覆盖)
paramiko.util.log_to_file(‘paramiko.log’)
s = paramiko.SSHClient()
#读取know_host
s.load_system_host_keys()
#建立SSH连接
s.connect(hostname,port,username,password)
stdin,stdout,stderr = s.exec_command(‘df -h’)
#打印标准输出
print stdout.read()
s.close()


基于证书方式的登录

#!/usr/bin/env python

import paramiko

hostname = 'mislost.com'
port = 22
username = 'ubuntu'
key_file = '/root/.ssh/id_rsa'
key = paramiko.RSAKey.from_private_key_file(key_file)

s = paramiko.SSHClient()
s.load_system_host_keys()
s.connect(hostname,port,username,pkey=key)
stdin,stdout,stderr = s.exec_command('df -h')

print stdout.read()
print stderr.read()
s.close()


PS:

导入paramiko模块,可能会提示:

RandomPool_DeprecationWarning: This application uses RandomPool, which is BROKEN in older releases. See http://www.pycrypto.org/randpool-broken

就是警告这个应用会使用随机数池(RandomPool),在较低的发行版中不支持这一功能,这个提示不会影响正常的使用。以下操作都在Python解释器中完成:



  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值