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()

  

  

最新文章

  1. 12 抽象函数-abstract
  2. C++ STL库之vector
  3. codeforces 434A A. Ryouko's Memory Note(数学)
  4. POJ 3469 Dual Core CPU (最小割建模)
  5. ssl https服务 需要 php5.3以上
  6. C/C++安全编码-字符串
  7. C# Cookie编程
  8. 用python 10min手写一个简易的实时内存监控系统
  9. PHP定义静态方法的原则
  10. C#、Java中的一些小功能点总结(持续更新......)
  11. h5-canvas 像素操作
  12. C#使用NanUI或ChromiumFx碰到的坑(一)
  13. 用Python实现简单通讯录
  14. 统计分析与R软件-chapter2-4
  15. Tf中的NCE-loss实现学习【转载】
  16. hud3007 Buried memory
  17. Confluence 6 内容在空间中是如何组织的
  18. timestamp 字段
  19. 操作Excel文件--java
  20. UEditor富文本WEB编辑器自定义默认值设置方法

热门文章

  1. Android 开发工具类 04_KeyBoardUtils
  2. synchronized修饰方法和对象的区别
  3. curl的head小记
  4. 表单提交.serialize()方法
  5. Hibernate框架 hilo 方式配置MySQL 数据库的主键自增
  6. [转] Hadoop管理员的十个最佳实践
  7. DOM-添加元素、节点
  8. [日常] SinaMail项目和技术能力总结
  9. [javaSE] 集合框架(HashSet)
  10. iOS 交互h5 - WKWebView