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实现随机密码字典生成器示例
Apr 09 Python
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
简洁的十分钟Python入门教程
Apr 03 Python
简单介绍Python中的RSS处理
Apr 13 Python
python中随机函数random用法实例
Apr 30 Python
基于Python中capitalize()与title()的区别详解
Dec 09 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
python爬取个性签名的方法
Jun 17 Python
python使用matplotlib画饼状图
Sep 25 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
Feb 26 Python
Python是怎样处理json模块的
Jul 16 Python
用python画城市轮播地图
May 28 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常用字符串比较函数实例汇总
2014/11/24 PHP
PHP时间函数使用详解
2019/03/21 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
vue中页面跳转拦截器的实现方法
2017/08/23 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
原生js实现无缝轮播图
2020/01/11 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
详解Python中dict与set的使用
2015/08/10 Python
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
JPype实现在python中调用JAVA的实例
2017/07/19 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
Python中str.join()简单用法示例
2018/03/20 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
TheFork葡萄牙:欧洲领先的在线餐厅预订平台
2019/05/27 全球购物
2014年个人年终总结
2015/03/09 职场文书
安全承诺书格式范本
2015/04/28 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
python开发的自动化运维工具ansible详解
2021/08/07 Python