Python基于sftp及rsa密匙实现远程拷贝文件的方法


Posted in Python onSeptember 21, 2016

本文实例讲述了Python基于sftp及rsa密匙实现远程拷贝文件的方法。分享给大家供大家参考,具体如下:

如果两台服务器之间使用了RSA秘钥免密码登录的方式,可以先查找出rsa秘钥的对应目录(如find / -name id_rsa 或者locate id_rsa),

接着通过Python中paramiko模块可以这样实现scp功能:

def scp_by_key(host_ip, host_port, remote_path, local_path, username, pkey_path):
  try:
    key=paramiko.RSAKey.from_private_key_file(pkey_path)
    t = paramiko.Transport((host_ip, host_port))
    t.connect(username=username, pkey=key)
    sftp = paramiko.SFTPClient.from_transport(t)
    src = remote_path
    des = local_path
    sftp.get(src,des)
    t.close()
  except Exception as e:
    print e

我们可以这样使用该方法:

scp_by_key('192.168.0.33', 22, '/xx/xxx/a.txt', 'xx/xxx/b.txt', 'xiaomo', '/home/xiaomo/.ssh/id_rsa')

用起来是不是很爽呢?不过前提是要有rsa密钥...如果需要密码,则只需将pkey参数换为password传入即可:

t = paramiko.Transport((host_ip, host_port))
t.connect(username=username, password='xxx')

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
Mar 02 Python
Python实现的凯撒密码算法示例
Apr 12 Python
查看django版本的方法分享
May 14 Python
Python高斯消除矩阵
Jan 02 Python
python装饰器使用实例详解
Dec 14 Python
使用tensorflow显示pb模型的所有网络结点方式
Jan 23 Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 Python
tensorflow 动态获取 BatchSzie 的大小实例
Jun 30 Python
Python TestSuite生成测试报告过程解析
Jul 23 Python
Python创建文件夹与文件的快捷方法
Dec 08 Python
Python数据可视化之用Matplotlib绘制常用图形
Jun 03 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
Sep 21 #Python
浅析Python中MySQLdb的事务处理功能
Sep 21 #Python
Python 爬虫学习笔记之多线程爬虫
Sep 21 #Python
Python 爬虫学习笔记之单线程爬虫
Sep 21 #Python
Python 爬虫学习笔记之正则表达式
Sep 21 #Python
Python简单实现安全开关文件的两种方式
Sep 19 #Python
Python打包可执行文件的方法详解
Sep 19 #Python
You might like
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
使用php判断网页是否gzip压缩
2013/06/25 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
实用的简单PHP分页集合包括使用方法
2013/10/21 PHP
解决php接收shell返回的结果中文乱码问题
2014/01/23 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
javascript 面向对象编程基础 多态
2009/08/21 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
详解AngularJS控制器的使用
2016/03/09 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
python MySQLdb Windows下安装教程及问题解决方法
2015/05/09 Python
python3.5仿微软计算器程序
2020/03/30 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
Django 实现admin后台显示图片缩略图的例子
2019/07/28 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
python 实现性别识别
2020/11/21 Python
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
大学生入党思想汇报
2014/01/01 职场文书
八项规定整改方案
2014/02/21 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
五好文明家庭事迹材料
2014/12/20 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL