Python paramiko模塊使用解析(實(shí)現(xiàn)ssh)
更新時(shí)間:2019年08月30日 14:29:10 作者:JasonMingHao
這篇文章主要介紹了Python paramiko模塊使用解析(實(shí)現(xiàn)ssh),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
開發(fā)堡壘機(jī)之前,先來(lái)學(xué)習(xí)Python的paramiko模塊,該模塊基于SSH用于連接遠(yuǎn)程服務(wù)器并執(zhí)行相關(guān)操作
安裝paramiko模塊
pip3 install paramiko
基于用戶密碼方式
import paramiko # 創(chuàng)建SSH對(duì)象 ssh = paramiko.SSHClient() # 允許連接不在know_hosts文件中的主機(jī) ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 連接服務(wù)器 ssh.connect(hostname="10.0.0.200", port=22, username='root', password='1') # 執(zhí)行命令 # stdin:標(biāo)準(zhǔn)輸入(就是你輸入的命令);stdout:標(biāo)準(zhǔn)輸出(就是命令執(zhí)行結(jié)果);stderr:標(biāo)準(zhǔn)錯(cuò)誤(命令執(zhí)行過(guò)程中如果出錯(cuò)了就把錯(cuò)誤打到這里),stdout和stderr僅會(huì)輸出一個(gè) stdin, stdout, stderr = ssh.exec_command('df') # 獲取命令結(jié)果 result = (stdout.read().decode('utf-8')) # 這個(gè)有問(wèn)題,如果執(zhí)行的命令是錯(cuò)誤的,會(huì)不顯示錯(cuò)誤,可以修改一下,先判斷stdout有沒(méi)有值,如果輸出沒(méi)有,就顯示錯(cuò)誤 print(result) # 關(guān)閉連接 ssh.close()
基于公鑰密鑰連接
import paramiko # 指定私鑰路徑 private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa') # 創(chuàng)建SSH對(duì)象 ssh = paramiko.SSHClient() # 允許連接不在know_hosts文件中的主機(jī) ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 連接服務(wù)器 ssh.connect(hostname='10.0.0.171', port=22, username='root', pkey=private_key) # 執(zhí)行命令 stdin, stdout, stderr = ssh.exec_command('df') # 獲取命令結(jié)果 result = stdout.read() print(result.decode()) # 關(guān)閉連接 ssh.close()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關(guān)文章
python中日志logging模塊的性能及多進(jìn)程詳解
使用Python來(lái)寫后臺(tái)任務(wù)時(shí),時(shí)常需要使用輸出日志來(lái)記錄程序運(yùn)行的狀態(tài),并在發(fā)生錯(cuò)誤時(shí)將錯(cuò)誤的詳細(xì)信息保存下來(lái),以別調(diào)試和分析。Python的logging模塊就是這種情況下的好幫手。本文就介紹了python中日志logging模塊性能及多進(jìn)程的相關(guān)資料,需要的朋友可以參考下。2017-07-07用Python實(shí)現(xiàn)寫倒序輸出(任意位數(shù))
這篇文章主要介紹了用Python實(shí)現(xiàn)寫倒序輸出(任意位數(shù)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05python實(shí)現(xiàn)socket+threading處理多連接的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)socket+threading處理多連接的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Python獲取當(dāng)前時(shí)間日期的方法總結(jié)
在Python編程中,獲取當(dāng)前的日期和時(shí)間是一個(gè)常見(jiàn)的需求,它在許多應(yīng)用中都有重要作用,本文為大家詳細(xì)整理了一些Python中的常用方法,希望對(duì)大家有所幫助2024-01-01