開發堡壘機之前,先來學習Python的paramiko模塊,該模塊基于SSH用于連接遠程服務器并執行相關操作
安裝paramiko模塊
pip3 install paramiko
基于用戶密碼方式
import paramiko
# 創建SSH對象
ssh = paramiko.SSHClient()
# 允許連接不在know_hosts文件中的主機
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 連接服務器
ssh.connect(hostname="10.0.0.200", port=22, username='root', password='1')
# 執行命令
# stdin:標準輸入(就是你輸入的命令);stdout:標準輸出(就是命令執行結果);stderr:標準錯誤(命令執行過程中如果出錯了就把錯誤打到這里),stdout和stderr僅會輸出一個
stdin, stdout, stderr = ssh.exec_command('df')
# 獲取命令結果
result = (stdout.read().decode('utf-8')) # 這個有問題,如果執行的命令是錯誤的,會不顯示錯誤,可以修改一下,先判斷stdout有沒有值,如果輸出沒有,就顯示錯誤
print(result)
# 關閉連接
ssh.close()
基于公鑰密鑰連接
import paramiko
# 指定私鑰路徑
private_key = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa')
# 創建SSH對象
ssh = paramiko.SSHClient()
# 允許連接不在know_hosts文件中的主機
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 連接服務器
ssh.connect(hostname='10.0.0.171', port=22, username='root', pkey=private_key)
# 執行命令
stdin, stdout, stderr = ssh.exec_command('df')
# 獲取命令結果
result = stdout.read()
print(result.decode())
# 關閉連接
ssh.close()
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
