Python Paramiko實現(xiàn)SSHv2協(xié)議輕松管理遠(yuǎn)程服務(wù)器
前言
Python的Paramiko庫,它是一個用于實現(xiàn)SSHv2協(xié)議的客戶端和服務(wù)器的庫。通過使用Paramiko,我們可以在Python程序中輕松地實現(xiàn)遠(yuǎn)程服務(wù)器的管理、文件傳輸?shù)裙δ?。特別做智能硬件產(chǎn)品的同學(xué)要熟悉它,因為它能為你減少很多麻煩,在我以前的工作中,對智能硬件做各種測試就是通過Paramiko連接設(shè)備下發(fā)各種命令
一.安裝
pip install paramiko
二.基本用法
1.創(chuàng)建一個ssh連接客戶端
import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
2.添加服務(wù)器的SSH密鑰(可選)
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
3.connect()創(chuàng)建連接,連接遠(yuǎn)程服務(wù),各種智能硬件,服務(wù)器等
hostname = '192.168.31.230' port = 22 username = 'kali' password = 'kali' ssh.connect(hostname, port, username, password)
4.執(zhí)行遠(yuǎn)程命令
stdin, stdout, stderr = ssh.exec_command('ls') print(stdout.read().decode()) # 打印輸出結(jié)果 print(stderrh.read().decode())# 輸出錯誤信息 # 返回結(jié)果 Desktop Documents Downloads Music Pictures Public Templates Videos
5.文件下載
local_file = 'D:/code/ssh/local_file.txt' # 本地文件路徑和名稱 remote_file = '/home/kali/remote_file.txt' # 遠(yuǎn)程文件路徑和名稱 sftp = ssh.open_sftp() # 打開SFTP會話 sftp.get(remote_file, local_file) # 從遠(yuǎn)程服務(wù)器下載文件到本地 sftp.close() # 關(guān)閉SFTP會話
6.文件上傳
local_file = 'D:/code/ssh/local_file2.txt' # 本地文件路徑和名稱 remote_file = '/home/kali/remote_file2.txt' # 遠(yuǎn)程文件路徑和名稱 sftp = ssh.open_sftp() # 打開SFTP會話 sftp.put(local_file, remote_file) # 上傳本地文件到遠(yuǎn)程服務(wù)器 sftp.close() # 關(guān)閉SFTP會話
7.關(guān)閉連接
ssh.close() #關(guān)閉連接
三.完整代碼如下
import paramiko ssh = paramiko.SSHClient() # 創(chuàng)建客服端 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 添加秘鑰 hostname = '192.168.31.230' port = 22 username = 'kali' password = 'kali' ssh.connect(hostname, port, username, password) # 創(chuàng)建連接 stdin, stdout, stderr = ssh.exec_command('ls') # 執(zhí)行l(wèi)s print(stdout.read().decode()) # 下載 local_file = 'D:/code/ssh/local_file.txt' # 本地文件路徑和名稱 remote_file = '/home/kali/remote_file.txt' # 遠(yuǎn)程文件路徑和名稱 sftp = ssh.open_sftp() # 打開SFTP會話 sftp.get(remote_file, local_file) # 從遠(yuǎn)程服務(wù)器下載文件到本地 # 上傳 local_file2 = 'D:/code/ssh/local_file2.txt' # 本地文件路徑和名稱 remote_file2 = '/home/kali/remote_file2.txt' # 遠(yuǎn)程文件路徑和名稱 sftp = ssh.open_sftp() # 打開SFTP會話 sftp.put(local_file2, remote_file2) # 上傳本地文件到遠(yuǎn)程服務(wù)器 sftp.close() # 關(guān)閉SFTP會話 ssh.close() # 關(guān)閉連接
以上就是Python Paramiko實現(xiàn)SSHv2協(xié)議輕松管理遠(yuǎn)程服務(wù)器的詳細(xì)內(nèi)容,更多關(guān)于Python Paramiko SSHv2協(xié)議的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python構(gòu)建基礎(chǔ)的爬蟲教學(xué)
在本篇內(nèi)容里小編給大家分享的是關(guān)于python構(gòu)建基礎(chǔ)的爬蟲教學(xué)內(nèi)容,需要的朋友們學(xué)習(xí)下。2018-12-12Python?數(shù)據(jù)篩選功能實現(xiàn)
這篇文章主要介紹了Python?數(shù)據(jù)篩選,無論是在數(shù)據(jù)分析還是數(shù)據(jù)挖掘的時候,數(shù)據(jù)篩選總會涉及到,這里我總結(jié)了一下python中列表,字典,數(shù)據(jù)框中一些常用的數(shù)據(jù)篩選的方法,需要的朋友可以參考下2023-04-04Python----數(shù)據(jù)預(yù)處理代碼實例
這篇文章主要介紹了Python數(shù)據(jù)預(yù)處理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03合并Excel工作薄中成績表的VBA代碼,非常適合教育一線的朋友
每次學(xué)生考試,評分完畢之后,把每個科的成績收集起來,就得到了一個有若干工作表,每個表有學(xué)生學(xué)號、分?jǐn)?shù)等列的Excel工作薄。2009-04-04Python實現(xiàn)將PDF文件拆分任意頁數(shù)
PyMuPDF,簡稱fitz,是一個輕量級的Python庫,它簡化和封裝了PyMuPDF的功能,使得在Python中處理PDF文件更加簡單,下面我們來看看如何使用他將PDF拆分任意頁數(shù)2025-02-02