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利用beautifulSoup实现爬虫
Sep 29 Python
Python中的面向对象编程详解(上)
Apr 13 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
Jun 30 Python
解决Python字典写入文件出行首行有空格的问题
Sep 27 Python
Python爬虫框架scrapy实现的文件下载功能示例
Aug 04 Python
python版百度语音识别功能
Jul 09 Python
Python简易版图书管理系统
Aug 12 Python
python3调用windows dos命令的例子
Aug 14 Python
django中的数据库迁移的实现
Mar 16 Python
Python基于paramunittest模块实现excl参数化
Apr 26 Python
Python 求向量的余弦值操作
Mar 04 Python
浅谈Python列表嵌套字典转化的问题
Apr 07 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入门学习知识点三 PHP上传
2011/07/14 PHP
header导出Excel应用示例
2014/01/24 PHP
phpmyadmin打开很慢的解决方法
2014/04/21 PHP
php创建无限级树型菜单
2015/11/05 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
JavaScript数组对象赋值用法实例
2015/08/04 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
vue axios post发送复杂对象问题
2019/06/04 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
python的几种开发工具介绍
2007/03/07 Python
Python3.2中的字符串函数学习总结
2015/04/23 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
python清除函数占用的内存方法
2018/06/25 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
基于python if 判断选择结构的实例详解
2019/05/06 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
环保建议书作文
2014/03/12 职场文书
吨的认识教学反思
2014/04/27 职场文书
小学生学习保证书
2015/02/26 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
活着观后感
2015/06/03 职场文书
2016年大学生党员承诺书
2016/03/24 职场文书
python异常中else的实例用法
2021/06/15 Python