首頁 >後端開發 >Python教學 >如何使用Python透過SSH遠端執行指令?

如何使用Python透過SSH遠端執行指令?

Susan Sarandon
Susan Sarandon原創
2024-11-04 18:10:02567瀏覽

How Can I Execute Commands Remotely Over SSH Using Python?

使用 Python 透過 SSH 執行指令

在遠端電腦上自動執行指令是系統管理中常見的任務。 Python 的 subprocess 模組可以處理本機指令,但如果您需要透過 SSH 在遠端主機上執行指令呢?

要克服這項挑戰,請考慮使用 Paramiko 函式庫。 Paramiko 提供了一套全面的 SSH 通訊工具。我們來探討如何使用 Paramiko 進行遠端命令執行。

使用Paramiko 進行遠端指令執行

<code class="python">import paramiko

# Connect to the remote host with username, password, and hostname
ssh = paramiko.SSHClient()
ssh.connect(hostname, username, password)

# Execute a command using exec_command
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(command)

# Handle output and error output
print(ssh_stdout.read().decode())
print(ssh_stderr.read().decode())

# Close the connection
ssh.close()</code>

使用SSH 金鑰進行驗證

使用SSH 金鑰進行驗證

<code class="python">k = paramiko.RSAKey.from_private_key_file(keyfilename)

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, username, pkey=k)</code>

如果您喜歡使用SSH 金鑰進行驗證,可以透過使用paramiko.RSAKey.from_private_key_file() 設定金鑰來實現。

範例用法

<code class="python">ssh = paramiko.SSHClient()
ssh.connect("remote_host", "username", "password")
stdin, stdout, stderr = ssh.exec_command("df -h")
output = stdout.read().decode()
ssh.close()

print(output)</code>

例如,您可以使用以下程式碼執行並擷取遠端指令的輸出:

透過利用Paramiko的強大功能,您可以輕鬆執行命令、檢索輸出、並透過Python 腳本輕鬆處理遠端電腦上的錯誤。

以上是如何使用Python透過SSH遠端執行指令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn