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 相关文章推荐
windows下wxPython开发环境安装与配置方法
Jun 28 Python
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 Python
python2.7到3.x迁移指南
Feb 01 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
Jun 11 Python
python同步两个文件夹下的内容
Aug 29 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
Python partial函数原理及用法解析
Dec 11 Python
Python要如何实现列表排序的几种方法
Feb 21 Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 Python
python中slice参数过长的处理方法及实例
Dec 15 Python
Python之qq自动发消息的示例代码
Feb 18 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
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
基于PHP文件操作的详细诠释
2013/06/21 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
Php-Redis安装测试笔记
2015/03/05 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
详解node.js中的npm和webpack配置方法
2018/01/21 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
Vue文本模糊匹配功能如何实现
2020/07/30 Javascript
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
Python中条件选择和循环语句使用方法介绍
2013/03/13 Python
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
整理Python 常用string函数(收藏)
2016/05/30 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
python右对齐的实例方法
2020/07/05 Python
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
韩国现代百货官网:Hmall
2018/03/21 全球购物
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
领导班子四风对照检查材料
2014/09/23 职场文书
房屋租赁协议书
2014/10/18 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
学籍证明模板
2015/06/18 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技