Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Melaksanakan Perintah Dari Jauh Melalui SSH Menggunakan Python?

Bagaimanakah Saya Boleh Melaksanakan Perintah Dari Jauh Melalui SSH Menggunakan Python?

Susan Sarandon
Susan Sarandonasal
2024-11-04 18:10:02567semak imbas

How Can I Execute Commands Remotely Over SSH Using Python?

Melaksanakan Perintah Melalui SSH dengan Python

Mengautomasikan pelaksanaan arahan pada mesin jauh ialah tugas biasa dalam pentadbiran sistem. Modul subproses Python boleh mengendalikan arahan tempatan, tetapi bagaimana jika anda perlu melaksanakan arahan pada hos jauh melalui SSH?

Untuk mengatasi cabaran ini, pertimbangkan untuk menggunakan pustaka Paramiko. Paramiko menyediakan set alat yang komprehensif untuk komunikasi SSH. Mari kita terokai cara menggunakan Paramiko untuk melaksanakan pelaksanaan arahan jauh.

Menggunakan Paramiko untuk Pelaksanaan Perintah Jauh

<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>

Menggunakan Kekunci SSH untuk Pengesahan

Jika anda lebih suka menggunakan kekunci SSH untuk pengesahan, anda boleh melakukannya dengan menetapkan kunci menggunakan paramiko.RSAKey.from_private_key_file().

<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>

Contoh Penggunaan

Sebagai contoh, anda boleh melaksanakan dan menangkap output arahan jauh dengan kod berikut:

<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>

Dengan memanfaatkan kuasa Paramiko, anda boleh melaksanakan arahan dengan mudah, mendapatkan output, dan mengendalikan ralat pada mesin jauh dari keselesaan skrip Python anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Perintah Dari Jauh Melalui SSH Menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn