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网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
Apr 25 Python
Python函数参数类型*、**的区别
Apr 11 Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
May 15 Python
python使用turtle库绘制时钟
Mar 25 Python
Flask-WTF表单的使用方法
Jul 12 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
python+jinja2实现接口数据批量生成工具
Aug 28 Python
pytorch实现线性拟合方式
Jan 15 Python
使用python turtle画高达
Jan 19 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
PHP5 的对象赋值机制介绍
2011/08/02 PHP
基于PHP的简单采集数据入库程序【续篇】
2014/07/30 PHP
PHP面向对象详解(三)
2015/12/07 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
JavaScript 继承详解(三)
2009/07/13 Javascript
JS获取父节点方法
2009/08/20 Javascript
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
javascript实现回到顶部特效
2015/05/06 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python读取视频流提取视频帧的两种方法
2020/10/22 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
德国PC硬件网站:CASEKING
2016/10/20 全球购物
美术师范毕业生自荐信
2013/11/16 职场文书
大学生志愿者感言
2014/01/15 职场文书
活动志愿者自荐信
2014/01/27 职场文书
科研课题实施方案
2014/03/18 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
员工趣味活动方案
2014/08/27 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
毕业生就业推荐表导师评语
2014/12/31 职场文书
2016年清明节寄语
2015/12/04 职场文书
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB