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爬取网站数据保存使用的方法
Nov 20 Python
python超简单解决约瑟夫环问题
May 12 Python
python使用正则表达式匹配字符串开头并打印示例
Jan 11 Python
Python3 循环语句(for、while、break、range等)
Nov 20 Python
Python3一行代码实现图片文字识别的示例
Jan 15 Python
python使用rpc框架gRPC的方法
Aug 24 Python
Python爬取商家联系电话以及各种数据的方法
Nov 10 Python
python 文本单词提取和词频统计的实例
Dec 22 Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 Python
python使用装饰器作日志处理的方法
Jul 11 Python
Python 支持向量机分类器的实现
Jan 15 Python
python关于变量名的基础知识点
Mar 03 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
NOT NULL 和NULL
2007/01/15 PHP
一段php加密解密的代码
2007/07/16 PHP
php 一元分词算法
2009/11/30 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
JavaScript 数组循环引起的思考
2010/01/01 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
Node.js实现文件上传
2016/07/05 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
React倒计时功能实现代码——解耦通用
2020/09/18 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
深入理解Django中内置的用户认证
2017/10/06 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
提升Python程序性能的7个习惯
2019/04/14 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
在python中使用nohup命令说明
2020/04/16 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
《和我们一样享受春天》教学反思
2014/02/07 职场文书
运动会闭幕式解说词
2014/02/21 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
党员公开承诺书2015
2015/01/21 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
初中英语教学随笔
2015/08/15 职场文书
python字典进行运算原理及实例分享
2021/08/02 Python