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 中文字符串的处理实现代码
Oct 25 Python
Python实现Sqlite将字段当做索引进行查询的方法
Jul 21 Python
利用python操作SQLite数据库及文件操作详解
Sep 22 Python
Python numpy 点数组去重的实例
Apr 18 Python
python3 flask实现文件上传功能
Mar 20 Python
Django框架设置cookies与获取cookies操作详解
May 27 Python
python实现socket+threading处理多连接的方法
Jul 23 Python
Django 在iframe里跳转顶层url的例子
Aug 21 Python
python导入不同目录下的自定义模块过程解析
Nov 18 Python
python:HDF和CSV存储优劣对比分析
Jun 08 Python
Python xlrd模块导入过程及常用操作
Jun 10 Python
Python读写Excel表格的方法
Mar 02 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实现算式验证码和汉字验证码实例
2015/03/09 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
laravel 使用事件系统统计浏览量的实现
2019/10/16 PHP
laravel5.6中的外键约束示例
2019/10/23 PHP
jquery实现勾选复选框触发事件给input赋值
2015/02/01 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
seajs学习之模块的依赖加载及模块API的导出
2016/10/20 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
python实现简单ftp客户端的方法
2015/06/28 Python
python用10行代码实现对黄色图片的检测功能
2015/08/10 Python
python算法表示概念扫盲教程
2017/04/13 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
Python原始套接字编程实例解析
2020/01/29 Python
pycharm 实现调试窗口恢复
2021/02/05 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
法律专业个人实习自我鉴定
2013/09/23 职场文书
骨干教师培训制度
2014/01/13 职场文书
教师考核材料
2014/05/21 职场文书
英语专业自荐书
2014/06/13 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
红歌会主持词
2015/07/02 职场文书