paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接,支持在远程登录服务器执行命令和上传下载文件的功能。

安装

pycrypto下载地址:

http://www.voidspace.org.uk/python/modules.shtml#pycrypto

ecdsa下载地址:

https://pypi.python.org/pypi/ecdsa/0.9

paramiko安装:pip install paramiko

登陆

基于用户名密码的SSHClient登陆

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__Author__ = 'kongZhaGen'
import paramiko # 建立SSH服务器的高级会话模式
ssh = paramiko.SSHClient()
# 允许连接不在known_hosts中的服务器
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 通过用户名及密码登陆服务器
ssh.connect(hostname='172.10.228.2', port=22, username='root', password='654321')
# 执行结果返回三个值
stdin, stdout, stderr = ssh.exec_command('df -h')
print stdout.read()
print '------------------'
print stderr.read()
ssh.close()

  结果

基于RSAKEY的SSHClient登陆

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__Author__ = 'kongZhaGen'
import paramiko # 本地可用的私钥文件路径,生成私钥时如果有密码,需要加password参数
key = paramiko.RSAKey.from_private_key_file('id_rsa.txt')
# 建立SSH服务器的高级会话模式
ssh = paramiko.SSHClient()
# 允许连接不在known_hosts中的服务器
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 通过用户名及密码登陆服务器
ssh.connect(hostname='192.168.56.41', port=22, username='root', pkey=key)
# 执行结果返回三个值
stdin, stdout, stderr = ssh.exec_command('df -h')
print stdout.read()
print '------------------'
print stderr.read()
ssh.close()

  结果

基于用户名密码的Socket连接

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__Author__ = 'kongZhaGen'
import paramiko # 初始化一个paramiko的Socket对象
trans = paramiko.Transport(('192.168.56.41', 22))
# 建立基于Socket的ssh2连接
trans.connect(username='root', password='rootroot')
# 建立SSH服务器的高级会话
ssh = paramiko.SSHClient()
# 将Socket连接赋与ssh会话
ssh._transport = trans
# 通过SSH会话执行命令
stdin, stdout,stderr = ssh.exec_command("df -h")
print stdout.read() # 会话关闭
ssh.close()
trans.close()

  

基于RSA的SOCKET连接

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__Author__ = 'kongZhaGen'
import paramiko # 私钥的本地路径
key = paramiko.RSAKey.from_private_key_file("id_rsa.txt")
# 初始化一个paramiko的Socket对象
trans = paramiko.Transport(('192.168.56.41', 22))
# 建立基于Socket的ssh2连接
trans.connect(username='root', pkey=key)
# 建立SSH服务器的高级会话
ssh = paramiko.SSHClient()
# 将Socket连接赋与ssh会话
ssh._transport = trans
# 通过SSH会话执行命令
stdin, stdout,stderr = ssh.exec_command("df -h")
print stdout.read() # 会话关闭
ssh.close()
trans.close()

  

数据传输

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__Author__ = 'kongZhaGen'
import paramiko # 私钥的本地路径
key = paramiko.RSAKey.from_private_key_file("id_rsa.txt")
# 初始化一个paramiko的Socket对象
trans = paramiko.Transport(('192.168.56.41', 22))
# 建立基于Socket的ssh2连接
trans.connect(username='root', pkey=key)
# 建立一个SFTP会话,建立一个SFTP通道,用于传输数据
sft = paramiko.SFTPClient.from_transport(trans)
# sft.put("kongtest.py","/root/kongtest.py")
sft.get('/root/install.log','install.log')
trans.close()

  

  

paramiko的安装与使用的更多相关文章

  1. python远程登录服务器(paramiko模块安装和使用)

    转自:http://www.jb51.net/article/46285.htm 一:简介 由paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器 ...

  2. python中paramiko的安装

    windows下安装并使用Python的SSH模块(paramiko+pycrypto+ecdsa) 2014-01-20 14:59 2223人阅读 评论(0) 收藏 举报 python+opens ...

  3. Python Paramiko模块安装和使用

    1.简介 大家会发现,常见的解决方法都会需要对远程服务器必要的配置,如果远程服务器只有一两台还好说,如果有N台,还需要逐台进行配置,或者需要使用代码进行以上操作时,上面的办法就不太方便了. 使用par ...

  4. paramiko 模块安装

    windows版本: 所需软件有:PyCrypto.ecdsa.paramiko. 一.软件下载地址 1.PyCrypto下载地址:  http://www.voidspace.org.uk/pyth ...

  5. paramiko库安装

    python的paramiko库用于执行ssh2连接(client和server).安装方式如下: 硬件环境:Raspberry 2B,arm,1GB RAM,16GB TF卡; 系统环境:Linux ...

  6. python第四十九天--paramiko模块安装大作战

    准备开始学习:paramiko模块,发现这个模块十分难搞 安装不上 搞了半天,win10 64下 pytyon 3.6 的 paramiko模块 死活安不上,在网上不断的找资料,可是没有用,没有用啊 ...

  7. paramiko 模块安装和使用

    一.Centos安装Paramiko 1.安装组件 yum install openssl openssl-devel python-dev pycrypto -y yum install zlib- ...

  8. python安装paramiko模块

    一.简介 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支 ...

  9. windows下python安装paramiko

    Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypto模块,因此要在Python中使用SSH,则需要先安装模块顺序是 ...

随机推荐

  1. Scala的下载和安装(本地)

    前言 Scala版本的选法: 目前,Kafka库和JDBC并不支持Scala2.11的编译,以及结合大多数人的使用请来看.         scala2.10.*为主,在这,scala2.10.4版本 ...

  2. idea 错误: -source 1.6 中不支持 diamond 运算符的解决办法

    在取一段github代码时,发现说是支持jdk 7 ,但是使用MAVEN编译不过去. 报错信息为错误: -source 1.6 中不支持 diamond 运算符 我使用的环境是1.7  + intel ...

  3. Java 集合框架(三)—— LinkedList

    三.链表 —— LinkedList ArrayList 虽然好用,但是数组和数组列表都有一个重大的缺陷:从数组的中间位置删除一个元素要付出很大的代价,其原因是数组中处于被删除元素之后的所有元素都要向 ...

  4. python迭代器、生成器、装饰器

    1 迭代器 这里我们先来回顾一下什么是可迭代对象(Iterable)? 可以直接作用于for循环的对象统称为可迭代对象,即Iterable. # 一是集合数据类型,如list.tuple.dict.s ...

  5. Golang cron 定时任务使用

    1.cron 表达式的基本格式 用过 linux 的应该对 cron 有所了解.linux 中可以通过 crontab -e 来配置定时任务.不过,linux 中的 cron 只能精确到分钟.而我们这 ...

  6. Socket编程 - API

    基础知识部分:http://www.cnblogs.com/Jimmy1988/p/7839940.html 1. 基本流程 Process Client Server Comment socket( ...

  7. java课件运行实践

    两数相加 源文件:Addition.java 源代码: // An addition program import javax.swing.JOptionPane;  // import class ...

  8. idea中maven项目程序包找不到解决办法之一

    首先检查maven配置对不对,包括被settings文件以及资源库的位置,maven版本等. 如果不行的话再进行下面的操作: 第一种方案: 在终端terminal中项目目录下,输入“mvn idea: ...

  9. [日常] nginx与HTTP cache

    去年的事,随便记记 =============================================================2017年12月11日 记录: nginx缓存:ngx_h ...

  10. 使用外部属性文件配置Bean以及Bean的生命周期方法

    1.使用外部属性文件配置Bean 在配置文件里配置 Bean 时, 有时需要在 Bean 的配置里混入系统部署的细节信息(例如: 文件路径, 数据源配置信息等). 而这些部署细节实际上需要和 Bean ...