电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python Paramiko使用示例

瀏覽:105日期:2022-07-10 15:28:34

Paramiko 是由 Python 語言編寫的一個擴展模塊,提供了基于 SSHv2 協議 (包括客戶端和服務端)的多種功能實現。通常被用來遠程控制類 UNIX 系統。

Paramiko 可以直接使用 pip 命令安裝:

$ pip install paramiko

此處不作過多介紹,參考后文中的代碼示例。

遠程執行 Linux 命令

代碼如下:

import paramiko# 初始化 SSH 客戶端,通過用戶名密碼連接至遠程服務器client = paramiko.SSHClient()client.set_missing_host_key_policy(paramiko.AutoAddPolicy)client.connect(hostname=’remoteserver_ip’, username=’username’, password=’password’)# 通過 RSA 秘鑰驗證的方式連接至遠程 SSH 服務# private_key = paramiko.RSAKey.from_private_key_file(’~/.ssh/id_rsa’)# client.connect(hostname='remoteserver_ip', username='username', pkey=private_key)# 遠程執行 df -h 命令并打印輸出stdin, stdout, stderr = client.exec_command(’df -h’)print(stdout.read().decode(’utf-8’))client.close()

運行效果如下:

python Paramiko使用示例

SFTP 文件傳輸

示例代碼如下:

import paramikotransport = paramiko.Transport((’hostname_or_ip’, port))# 通過用戶名密碼完成驗證建立連接transport.connect(username=’username’, password=’password’)# 通過 RSA 私鑰文件完成驗證建立連接# private_key = paramiko.RSAKey.from_private_key_file(’/path/to/private_key_file’)# transport.connect(username=’username’, pkey=private_key)sftp = paramiko.SFTPClient.from_transport(transport)localpath = 'localfile'remotepath = 'remotefile_fullpath'sftp.put(localpath, remotepath)print('Successfully uploaded')transport.close()

綜合示例

代碼如下(文件名 ssh_connection.py ):

import paramikoimport getpassimport osclass SSHConnection(): def __init__(self, user, host, port=22, password=’’): self.username = user self.host = host self.port = port self.password = password self.keyfile = self.get_keyfile() def get_keyfile(self, path=os.getcwd()): default_keyfile = os.path.join( os.environ[’HOME’], ’.ssh’, ’id_rsa’) if ’id_rsa’ in os.listdir(path): keyfile = os.path.join(path, ’id_rsa’) elif os.path.isfile(default_keyfile): keyfile = default_keyfile else: keyfile = ’’ return keyfile def connect(self): transport = paramiko.Transport((self.host, self.port)) if self.password: transport.connect(username=self.username, password=self.password) elif self.keyfile: transport.connect(username=self.username,pkey=paramiko.RSAKey.from_private_key_file(self.keyfile)) else: password = getpass.getpass('Password for %s@%s: ' % (self.username, self.host)) transport.connect(username=self.username, password=password) self._transport = transport print('Connected to %s as %s' % (self.host, self.username)) def close(self): self._transport.close() def run_cmd(self, command): ssh = paramiko.SSHClient() ssh._transport = self._transport stdin, stdout, stderr = ssh.exec_command(command) res = stdout.read().decode(’utf-8’) error = stderr.read().decode(’utf-8’) if error.strip(): return error else: return res def trans_file(self, localpath, remotepath, method=’’): sftp = paramiko.SFTPClient.from_transport(self._transport) if method == ’put’: sftp.put(localpath, remotepath) print('File %s has uploaded to %s' % (localpath, remotepath)) elif method == ’get’: sftp.get(remotepath, localpath) print('File %s has saved as %s' % (remotepath, localpath)) else: print(’usage: trans_file(localpath, remotepath, method='get/put'’) def __del__(self): self.close()

測試結果如下:

(python3) D:Programpythondevops>pythonPython 3.7.2 (default, Jan 2 2019, 17:07:39) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32Type 'help', 'copyright', 'credits' or 'license' for more information.>>> from ssh_connection import SSHConnection>>> client = SSHConnection(’starky’,’127.0.0.1’)>>> client.connect()Connected to 127.0.0.1 as starky>>> client.run_cmd(’uname -a’)’Linux server1 5.0.0-20-generic #21-Ubuntu SMP Mon Jun 24 09:32:09 UTC 2019 x86_64 x86_64 x86_64 GNU/Linuxn’>>> client.trans_file(’id_rsa.pub’, ’/home/starky/id_rsa.pub’, method=’put’)File id_rsa.pub has uploaded to /home/starky/id_rsa.pub>>> client.run_cmd(’ls -l /home/starky/id_rsa.pub’)’-rw-rw-r-- 1 starky starky 410 7月 20 15:01 /home/starky/id_rsa.pubn’>>> exit()

以上就是python Paramiko使用示例的詳細內容,更多關于python Paramiko的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | 电缆桥架生产厂家_槽式/梯式_热镀锌线槽_广东东莞雷正电气 | PCB设计,PCB抄板,电路板打样,PCBA加工-深圳市宏力捷电子有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 百度关键词优化_网站优化_SEO价格 - 云无限好排名 | 华东师范大学在职研究生招生网_在职研究生招生联展网 | T恤衫定做,企业文化衫制作订做,广告T恤POLO衫定制厂家[源头工厂]-【汉诚T恤定制网】 | 周口市风机厂,周鼓风机,河南省周口市风机厂 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 交联度测试仪-湿漏电流测试仪-双85恒温恒湿试验箱-常州市科迈实验仪器有限公司 | 集装箱箱号识别_自重载重图像识别_铁路车号自动识别_OCR图像识别 | 焊缝跟踪系统_激光位移传感器_激光焊缝跟踪传感器-创想智控 | 培训中心-海南香蕉蛋糕加盟店技术翰香原中心官网总部 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 布袋式除尘器|木工除尘器|螺旋输送机|斗式提升机|刮板输送机|除尘器配件-泊头市德佳环保设备 | 济南律师,济南法律咨询,山东法律顾问-山东沃德律师事务所 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 布袋式除尘器|木工除尘器|螺旋输送机|斗式提升机|刮板输送机|除尘器配件-泊头市德佳环保设备 | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 多功能干燥机,过滤洗涤干燥三合一设备-无锡市张华医药设备有限公司 | 磨煤机配件-高铬辊套-高铬衬板-立磨辊套-盐山县宏润电力设备有限公司 | 玻璃瓶厂家_酱菜瓶厂家_饮料瓶厂家_酒瓶厂家_玻璃杯厂家_徐州东明玻璃制品有限公司 | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 | 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 北京翻译公司_同传翻译_字幕翻译_合同翻译_英语陪同翻译_影视翻译_翻译盖章-译铭信息 | 户外环保不锈钢垃圾桶_标识标牌制作_园林公园椅厂家_花箱定制-北京汇众环艺 | 密集架-手摇-智能-移动-价格_内蒙古档案密集架生产厂家 | 上海小程序开发-小程序制作-上海小程序定制开发公司-微信商城小程序-上海咏熠 | 北京四合院出租,北京四合院出售,北京平房买卖 - 顺益兴四合院 | 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 飞行者联盟-飞机模拟机_无人机_低空经济_航空技术交流平台 | 四川成都干燥设备_回转筒干燥机_脉冲除尘器_输送设备_热风炉_成都川工星科机电设备有限公司 | 耐磨陶瓷管道_除渣器厂家-淄博浩瀚陶瓷科技有限公司 | PE拉伸缠绕膜,拉伸缠绕膜厂家,纳米缠绕膜-山东凯祥包装 | 杭州顺源过滤机械有限公司官网-压滤机_板框压滤机_厢式隔膜压滤机厂家 | 刚性-柔性防水套管-橡胶伸缩接头-波纹管补偿器-启腾供水材料有限公司 |