Python paramiko模塊使用解析(實(shí)現(xiàn)ssh)
更新時(shí)間:2019年08月30日 14:29:10 作者:JasonMingHao
這篇文章主要介紹了Python paramiko模塊使用解析(實(shí)現(xiàn)ssh),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
開發(fā)堡壘機(jī)之前,先來學(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í)行過程中如果出錯(cuò)了就把錯(cuò)誤打到這里),stdout和stderr僅會(huì)輸出一個(gè)
stdin, stdout, stderr = ssh.exec_command('df')
# 獲取命令結(jié)果
result = (stdout.read().decode('utf-8')) # 這個(gè)有問題,如果執(zhí)行的命令是錯(cuò)誤的,會(huì)不顯示錯(cuò)誤,可以修改一下,先判斷stdout有沒有值,如果輸出沒有,就顯示錯(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來寫后臺(tái)任務(wù)時(shí),時(shí)常需要使用輸出日志來記錄程序運(yùn)行的狀態(tài),并在發(fā)生錯(cuò)誤時(shí)將錯(cuò)誤的詳細(xì)信息保存下來,以別調(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-05
python實(shí)現(xiàn)socket+threading處理多連接的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)socket+threading處理多連接的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python獲取當(dāng)前時(shí)間日期的方法總結(jié)
在Python編程中,獲取當(dāng)前的日期和時(shí)間是一個(gè)常見的需求,它在許多應(yīng)用中都有重要作用,本文為大家詳細(xì)整理了一些Python中的常用方法,希望對(duì)大家有所幫助2024-01-01

