Python 實現sftp客戶端(連線遠端伺服器)

2021-10-02 22:01:23 字數 3005 閱讀 6402

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"

)sftp.get(

"/www/test.py"

,"e:/test/aaa.py"

)# 關閉連線

transport.close(

)

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"

)sftp.get(

"/www/test.py"

,"e:/aaa.py"

)# 關閉連線

client.close(

)

# -*- 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

defconnect

(self)

: transport = paramiko.transport(

(self.host,self.port)

) transport.connect(username=self.username,password=self.pwd)

self.__transport = transport

defclose

(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)

defdownload

(self,remote_path,local_path)

: sftp = paramiko.sftpclient.from_transport(self.__transport)

sftp.get(remote_path,local_path)

defcmd

(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(

)

SFTP客戶端連線

最近專案使用sftp很多,在使用過程中遇到很多問題,把自己用到的和同事指導後的 整理出發,記錄一下 需要引用的jar jsch 0.1.53.jar sftpclient類 public class sftpclient public static final sftpclient connect ...

go語言實現的簡單 sftp客戶端

利用開源庫,實現乙個簡單的sftp客戶端讀取檔案的邏輯。注意,sftp與ftp完全是2套不相關的協議 注意,此 作為客戶端,只支援passwd的方式認證,實際上,很多sftp只支援keyboard interactive方式,請參考 keyboardinteractivechallenge func...

使用tcp select實現客戶端與客戶端的通訊

使用多路復用實現客戶端與客戶端進行通訊 原理 客戶端只要一連上伺服器,立馬給伺服器傳送使用者名稱,然後在服務端將newsocketfd 存放在同乙個結構體中,客戶端先給伺服器傳送資料,然後通過伺服器 給客戶端。伺服器先會查詢對應名字的 newsocketfd 然後向該 newsocketfd 中寫入...