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