python paramiko的使用簡單介紹

2021-10-01 03:31:00 字數 2864 閱讀 4146

#設定ssh連線的遠端主機位址和埠

t=paramiko.transport((ip,port))

#設定登入名和密碼

t.connect(username=username,password=password)

#連線成功後開啟乙個channel

chan=t.open_session()

#設定會話超時時間

chan.settimeout(session_timeout)

#開啟遠端的terminal

chan.get_pty()

#啟用terminal

chan.invoke_shell()

然後就可以通過chan.send(『command』)和chan.recv(recv_buffer)來遠端執行命令以及本地獲取反饋。

paramiko有兩個模組sshclient()和sftpclient()

sshclient()的使用**:

import paramiko

ssh = paramiko.sshclient() # 建立ssh物件

# 允許連線不在know_hosts檔案中的主機

ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())

# 連線伺服器

ssh.connect(hostname='192.168.2.103', port=22, username='root', password='123456')

stdin, stdout, stderr = ssh.exec_command('ls') # 執行命令

result = stdout.read() # 獲取命令結果

print (str(result,encoding='utf-8'))

ssh.close() # 關閉連線

sshclient()裡有個transport變數,是用於獲取連線,我們也可單獨的獲取到transport變數,然後執行連線操作

import paramiko

transport = paramiko.transport(('192.168.2.103', 22))

transport.connect(username='root', password='123456')

ssh = paramiko.sshclient()

ssh._transport = transport

stdin, stdout, stderr = ssh.exec_command('df')

print (str(stdout.read(),encoding='utf-8'))

transport.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

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

Python Paramiko模組的使用

windows下有很多非常好的ssh客戶端,比如putty。在python的世界裡,你可以使用原始套接字和一些加密函式建立自己的ssh客戶端或服務端,但如果有現成的模組,為什麼還要自己實現呢。使用paramiko庫中的pycrypto能夠讓你輕鬆使用ssh2協議。paramiko的安裝方法網上有很多...

python paramiko 各種錯誤

這個錯誤出現在伺服器接受連線但是ssh守護程序沒有及時響應的情況 預設是15s 要解決這個問題,需要將paramiko的響應等待時間調長。transport.py中def init 初始化函式中 how long seconds to wait for the ssh banner self.ban...

Python paramiko模組的安裝與使用

一 安裝paramiko 1 pip3 install paramiko 二 使用使用者名稱密碼方式遠端執行命令 1 2 3 4 5 6 7 8 importparamiko ssh paramiko.sshclient ssh.set missing host key policy paramik...