Python paramiko模塊(實現ssh)

開發堡壘機之前,先來學習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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章