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 条件判断的缩写方法
Sep 06 Python
python根据时间生成mongodb的ObjectId的方法
Mar 13 Python
Python分治法定义与应用实例详解
Jul 28 Python
Python:Scrapy框架中Item Pipeline组件使用详解
Dec 27 Python
python爬取哈尔滨天气信息
Jul 14 Python
Python连接Redis的基本配置方法
Sep 13 Python
六行python代码的爱心曲线详解
May 17 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
Jul 18 Python
Python 实现的 Google 批量翻译功能
Aug 26 Python
python2.7使用scapy发送syn实例
May 05 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 Python
Python下载商品数据并连接数据库且保存数据
Mar 31 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 各种排序算法实现代码
2009/08/20 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
laravel orm 关联条件查询代码
2019/10/21 PHP
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
2009/09/09 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
手机端转换rem适应
2017/04/01 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
小程序采集录音并上传到后台
2019/11/22 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
python和bash统计CPU利用率的方法
2015/07/10 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
Pycharm小白级简单使用教程
2020/01/08 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
毕业生自我鉴定
2013/11/05 职场文书
最新的咖啡店创业计划书
2013/12/30 职场文书
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
《中华少年》教学反思
2014/02/15 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
罚款通知怎么写
2015/04/22 职场文书
社区艾滋病宣传活动总结
2015/05/07 职场文书
安全生产会议制度
2015/08/06 职场文书
oracle通过存储过程上传list保存功能
2021/05/12 Oracle
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
解决Redis启动警告问题
2022/02/24 Redis