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抓取网页正文的源码
Jun 11 Python
Python可跨平台实现获取按键的方法
Mar 05 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
深入理解Python对Json的解析
Feb 14 Python
Python机器学习之决策树算法
Dec 22 Python
对python中矩阵相加函数sum()的使用详解
Jan 28 Python
Python脚本修改阿里云的访问控制列表的方法
Mar 08 Python
python使用pygame模块实现坦克大战游戏
Mar 25 Python
Python collections模块使用方法详解
Aug 28 Python
使用python 将图片复制到系统剪贴中
Dec 13 Python
Python实现http接口自动化测试的示例代码
Oct 09 Python
如何用 Python 制作一个迷宫游戏
Feb 25 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
微信接口生成带参数的二维码
2017/07/31 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
jquery 日期分离成年月日的代码
2010/05/14 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
javascript函数自动执行常用方法汇总
2016/03/28 Javascript
有关文件上传 非ajax提交 得到后台数据问题
2016/10/12 Javascript
js实现对table的增加行和删除行的操作方法
2016/10/13 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
详解vue-cli脚手架中webpack配置方法
2018/08/22 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
JavaScript变量基本使用方法实例分析
2019/11/15 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
Python实现修改文件内容的方法分析
2018/03/25 Python
python中的数据结构比较
2019/05/13 Python
Django 外键的使用方法详解
2019/07/19 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
计算机网络专业推荐信
2013/11/24 职场文书
元旦活动感言
2014/03/08 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python