Python—实现sftp客户端(连接远程服务器)
使用SFTP上传与下载文件方式一:
- import paramiko
- transport = paramiko.Transport(("106.15.88.182", 22)) # 获取Transport实例
- transport.connect(username="root", password="123456") # 建立连接
- # 创建sftp对象,SFTPClient是定义怎么传输文件、怎么交互文件
- sftp = paramiko.SFTPClient.from_transport(transport)
- # 将本地 api.py 上传至服务器 /www/test.py。文件上传并重命名为test.py
- sftp.put("E:/test/api.py", "/www/test.py")
- # 将服务器 /www/test.py 下载到本地 aaa.py。文件下载并重命名为aaa.py
- sftp.get("/www/test.py", "E:/test/aaa.py")
- # 关闭连接
- transport.close()
使用SFTP上传与下载文件方式二:
- import paramiko
- client = paramiko.SSHClient() # 获取SSHClient实例
- client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
- client.connect("106.15.88.182", username="root", password="123456") # 连接SSH服务端
- transport = client.get_transport() # 获取Transport实例
- # 创建sftp对象,SFTPClient是定义怎么传输文件、怎么交互文件
- sftp = paramiko.SFTPClient.from_transport(transport)
- # 将本地 api.py 上传至服务器 /www/test.py。文件上传并重命名为test.py
- sftp.put("E:/test/api.py", "/www/test.py")
- # 将服务器 /www/test.py 下载到本地 aaa.py。文件下载并重命名为aaa.py
- sftp.get("/www/test.py", "E:/aaa.py")
- # 关闭连接
- client.close()
使用SFTP上传与下载文件之封装:
- # -*- coding:utf-8 -*-
- import paramiko
- import uuid
- class SSHConnection(object):
- def __init__(self, host='192.168.2.103', port=22, username='root',pwd='123456'):
- self.host = host
- self.port = port
- self.username = username
- self.pwd = pwd
- self.__k = None
- def connect(self):
- transport = paramiko.Transport((self.host,self.port))
- transport.connect(username=self.username,password=self.pwd)
- self.__transport = transport
- def close(self):
- self.__transport.close()
- def upload(self,local_path,target_path):
- # 连接,上传
- # file_name = self.create_file()
- sftp = paramiko.SFTPClient.from_transport(self.__transport)
- # 将location.py 上传至服务器 /tmp/test.py
- sftp.put(local_path, target_path)
- def download(self,remote_path,local_path):
- sftp = paramiko.SFTPClient.from_transport(self.__transport)
- sftp.get(remote_path,local_path)
- def cmd(self, command):
- ssh = paramiko.SSHClient()
- ssh._transport = self.__transport
- # 执行命令
- stdin, stdout, stderr = ssh.exec_command(command)
- # 获取命令结果
- result = stdout.read()
- print (str(result,encoding='utf-8'))
- return result
- ssh = SSHConnection()
- ssh.connect()
- ssh.cmd("ls")
- ssh.upload('s1.py','/tmp/ks77.py')
- ssh.download('/tmp/test.py','kkkk',)
- ssh.cmd("df")
- ssh.close()
https://www.cnblogs.com/lsdb/p/9294832.html
Python—实现sftp客户端(连接远程服务器)的更多相关文章
- Python—实现ssh客户端(连接远程服务器)
paramiko是一个基于SSH用于连接远程服务器并执行相关操作(SSHClient和SFTPClinet,即一个是远程连接,一个是上传下载服务),使用该模块可以对远程服务器进行命令或文件操作,值得一 ...
- 昔日埋雷不经意,今朝踩雷排查难:JetBrains系列IDE使用SFTP连接远程服务器报“EOF while reading packet”解决方法
写在前面 这是一篇问题解决记录.希望能帮到遇到同样问题的读者. 强烈建议:请您先看解决步骤一节,如果您发现在下的问题和您的问题不一样,就可以及时离开本文,避免浪费时间. 正文 问题描述 在使用GoLa ...
- 使用WinScp连接远程服务器和传输文件
早在3月份,我就使用到了WinScp,WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端.同时支持SCP协议. 它的主要功能就是在本地与远程计算机间安全的复制文件..WinSc ...
- Pycharm连接远程服务器并进行代码上传+远程调试
前提:需要有一个远程服务器,知道他的ip.port.user.password 一.连接远程服务器 进入配置页面 Pycharm菜单栏,如下图所示,依次点击 Tools -> Deploymen ...
- VNC配置连接远程服务器桌面-linux\windows
一.VNC配置连接远程服务器桌面 1.服务器安装VNC-server # yum -y install vnc-server 2.配置VNC连接登陆密码 # vncpasswd 回车 3.配置VNC- ...
- Mac下ssh连接远程服务器时自动断开问题
在mac下使用securecrt通过ssh连接远程服务器时,总会一段时间没有动作后,ssh被自动断开.在windows下用xmanager貌似没有遇到过这个问题. 在网上找了解决方法如下: 客户端配置 ...
- PyCharm连接远程服务器
PyCharm连接远程服务器 1.Tools->Start SSH session 2.新建一个连接或者选择一个已经存在的sftp 3.选择Edit credentials 填写相关连接信息 4 ...
- ORA-12538;ORA-12154;使用PL/SQL dve无法连接远程服务器上的oracle数据库,同时本机上也安装了一个oracle数据库
问题描述:本人使用PL/SQL dve连接远程服务器上的oracle数据库,一直是没有问题的.我想提高下自己在数据库方面的能力就在自己的笔记本上安装了一个oracle数据库实例,安装并配置好之后,使用 ...
- paramiko模块(基于SSH用于连接远程服务器)
paramiko模块,基于SSH用于连接远程服务器并执行相关操作 class SSHConnection(object): def __init__(self, host_dict): self.ho ...
- Mac使用SSH连接远程服务器
1. 终端通过 ssh 连接远程服务器 ssh -p 36622 root@localhost 2. 文件上传下载 上传 scp 下载 scp 3. 客户端 FinalShell(推荐) FileZi ...
随机推荐
- 【Unity】 关于Package Manager 无限加载的问题(Loading Packages),以及可能的解决办法(待补充。)
·版本:2019.1.8f 官方论坛对于此问题的讨论:地址>Package Manager 许多人都遇到了这个问题,但是无法定位问题出在哪里.官方技术人员提供了一个名为 Package Mana ...
- smobiler自适应不同手机分辨率
在smobiler中可以通过相对布局或者绝对布局实现自适应不同手机分辨率. 例如实现下图中的布局,图中的布局实际可以分成3个部分,部分1可以使用Title控件,部分2可以使用Panel(在Panel中 ...
- 从零开始的SpringBoot项目搭建
前言 今天是我加入博客园的第一天今天刚好学习到SpringBoot,就顺便记录一下吧 一.创建项目 1.创建工程 ① 通过File > New > Project,新建工程,选择Sprin ...
- python升级带来的yum异常(解决错误File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:)
解决错误File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: 错误: 原因: 这是因为yum采用python作为命令解 ...
- oracle数据库自动生成数据库表结构文档(亲测有效)
import java.awt.Color; import java.io.FileOutputStream; import java.sql.Connection; import java.sql. ...
- 自写的简单MD5加密算法
package com.srs.tools; import java.math.BigInteger; import java.security.MessageDigest; /*********** ...
- MyBatis中特殊符号的转义
在MyBatis中遇到特殊符号时有两种转义方式: 第一种 描述 空格 小于 大于 小于等于 大于等于 与 单引号 双引号 原符号 < > <= >= & ' " ...
- Git 在小团队中的管理流程
目标读者:了解 Git 的基本概念,能够使用 Git 进行基本的本地和远程操作. 有关 Git 的基础知识可以参见 知乎回答-怎样使用 GitHub?,天猪(刘勇)给出了一些很好的学习资料. 本文介绍 ...
- linux的路由功能实现
参考URL: https://blog.csdn.net/chengqiuming/article/details/80140768 一,启用Linux的路由转发功能. 二,新建veth pair 三 ...
- python的路径问题
## 文件路径出错问题 """ 如何获取与当前文件相关的地址 """ import os # 当前文件的完整路径 print(__file_ ...