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实现端口复用实例代码
Jul 03 Python
Python用GET方法上传文件
Mar 10 Python
Python脚本实现格式化css文件
Apr 08 Python
在Python的gevent框架下执行异步的Solr查询的教程
Apr 16 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
基于python3实现socket文件传输和校验
Jul 28 Python
python使用Turtle库绘制动态钟表
Nov 19 Python
Python中collections模块的基本使用教程
Dec 07 Python
对Django外键关系的描述
Jul 26 Python
python matplotlib imshow热图坐标替换/映射实例
Mar 14 Python
python实现邮件循环自动发件功能
Sep 11 Python
Python类型转换的魔术方法详解
Dec 23 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
利用 window_onload 实现select默认选择
2006/10/09 PHP
php解析http获取的json字符串变量总是空白null
2015/03/02 PHP
php多进程应用场景实例详解
2019/07/22 PHP
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
JS重要知识点小结
2011/11/06 Javascript
有关于eclipse配置spket需要注意的一些地方
2013/04/07 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
jquery选择符快速提取web表单数据示例
2014/03/27 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
jQuery序列化表单成对象的简单实现
2016/11/29 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
使用vue构建一个上传图片表单
2017/07/04 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
iphone刘海屏页面适配方法
2019/05/07 Javascript
在Python中使用dict和set方法的教程
2015/04/27 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
python顺序的读取文件夹下名称有序的文件方法
2018/07/11 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
Python面向对象编程基础实例分析
2020/01/17 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
2020/03/06 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
通信工程专业毕业生推荐信
2013/12/25 职场文书
医学生自我评价
2014/01/27 职场文书
绘画专业自荐信范文
2014/02/23 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
合作意向书范本
2019/04/17 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
Mysql开启外网访问
2022/05/15 MySQL