Automating Commands over SSH with Python
When automating command-line tasks in Python, using subprocess.call() is a common approach. However, for remote machine commands that require SSH login, this method is insufficient.
Automating SSH Commands in Python
To automate SSH commands in Python, a recommended module is paramiko. It provides an interface for establishing SSH connections and executing commands securely.
Here's an example using paramiko:
<code class="python">import paramiko ssh = paramiko.SSHClient() ssh.connect(server, username=username, password=password) ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(cmd_to_execute)</code>
This establishes an SSH connection to a remote server, specifying the server address, username, and password. Subsequently, the exec_command() method executes the desired command, capturing standard output and error streams.
In case of SSH key authentication, the following code snippet can be used:
<code class="python">import paramiko k = paramiko.RSAKey.from_private_key_file(keyfilename) # OR k = paramiko.DSSKey.from_private_key_file(keyfilename) ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=host, username=user, pkey=k)</code>
By specifying the keyfilename containing the private key, this code initiates an SSH connection using key-based authentication.
The above is the detailed content of How Can I Automate SSH Commands in Python?. For more information, please follow other related articles on the PHP Chinese website!