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中使用mongoengine操作MongoDB教程
Apr 24 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
Python 中迭代器与生成器实例详解
Mar 29 Python
Python实现复杂对象转JSON的方法示例
Jun 22 Python
python 中的divmod数字处理函数浅析
Oct 17 Python
Python 对输入的数字进行排序的方法
Jun 23 Python
django中ORM模型常用的字段的使用方法
Mar 05 Python
python scrapy爬虫代码及填坑
Aug 12 Python
基于Python批量生成指定尺寸缩略图代码实例
Nov 20 Python
PyQt5多线程防卡死和多窗口用法的实现
Sep 15 Python
如何Python使用re模块实现okenizer
Apr 30 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 return语句另类用法不止是在函数中
2014/09/17 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
JS 文件大小判断的实现代码
2010/04/07 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
vue实现条件叠加搜索的解决方法
2019/05/28 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
Python入门篇之函数
2014/10/20 Python
python函数装饰器用法实例详解
2015/06/04 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
python基础练习之几个简单的游戏
2017/11/10 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
详解Python绘图Turtle库
2019/10/12 Python
python列表推导式操作解析
2019/11/26 Python
python实现飞行棋游戏
2020/02/05 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
受欢迎的大学生自我评价
2013/12/05 职场文书
授权委托书范本
2014/04/03 职场文书
物理教育专业求职信
2014/06/25 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
素质教育培训心得体会
2016/01/19 职场文书
Java数组详细介绍及相关工具类
2022/04/14 Java/Android