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的几种开发工具介绍
Mar 07 Python
用不到50行的Python代码构建最小的区块链
Nov 16 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
Jan 29 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
如何实现Django Rest framework版本控制
Jul 25 Python
python剪切视频与合并视频的实现
Mar 03 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
Jul 15 Python
PyTorch 导数应用的使用教程
Aug 31 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 24 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 图像尺寸调整代码
2010/05/26 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
JQuery 风格的HTML文本转义
2009/07/01 Javascript
jquery select选中的一个小问题
2009/10/11 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
jquery 日期控件datepicker属性详细解析
2013/11/08 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
2017/08/23 jQuery
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
python3访问sina首页中文的处理方法
2014/02/24 Python
python操作字典类型的常用方法(推荐)
2016/05/16 Python
Python简单生成8位随机密码的方法
2017/05/24 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
pandas带有重复索引操作方法
2018/06/08 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
为什么相对PHP黑python的更少
2020/06/21 Python
python线程优先级队列知识点总结
2021/02/28 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
《晚上的太阳》教学反思
2014/04/23 职场文书
普通话宣传标语
2014/06/26 职场文书
大学生操行评语大全
2014/12/31 职场文书
患者身份识别制度
2015/08/06 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL