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实现包含min函数的栈
Apr 29 Python
Python中字符串的常见操作技巧总结
Jul 28 Python
基于Python实现的ID3决策树功能示例
Jan 02 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
Python监控服务器实用工具psutil使用解析
Dec 19 Python
在python中使用pyspark读写Hive数据操作
Jun 06 Python
python语言的优势是什么
Jun 17 Python
聊聊python中的异常嵌套
Sep 01 Python
Python虚拟环境的创建和使用详解
Sep 07 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 Python
jupyter notebook远程访问不了的问题解决方法
Jan 11 Python
OpenCV图像变换之傅里叶变换的一些应用
Jul 26 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
一些星际专用术语解释
2020/03/04 星际争霸
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
php把session写入数据库示例
2014/02/26 PHP
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
node 版本切换的实现
2020/02/02 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
对Pyhon实现静态变量全局变量的方法详解
2019/01/11 Python
Python多项式回归的实现方法
2019/03/11 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
shallow copy和deep copy的区别
2016/05/09 面试题
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
教育合作协议范本
2014/10/17 职场文书
房屋所有权证明
2015/06/19 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
2016年秋季运动会通讯稿
2015/11/25 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python