首页 > 后端开发 > Python教程 > 如何使用Python通过SSH远程执行命令?

如何使用Python通过SSH远程执行命令?

Susan Sarandon
发布: 2024-11-04 18:10:02
原创
566 人浏览过

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 密钥进行身份验证,可以通过使用 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>
登录后复制

示例用法

例如,您可以使用以下代码执行并捕获远程命令的输出:

<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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板