python paramiko ssh example

Joseph 129 Published: 07/23/2024

python paramiko ssh example

Here's a Python Paramiko SSH example that demonstrates how to establish an SSH connection and execute commands on a remote server.

Prerequisites:

Install the Paramiko library using pip: pip install paramiko Have SSH credentials for the remote server (username, password, hostname/IP)

Example Code:

import paramiko
Define SSH connection settings

hostname = 'example.com'

port = 22

username = 'your_username'

password = 'your_password'

Create a SSH client object

ssh_client = paramiko.SSHClient()

Automatically add the host key to the list of known hosts. This is necessary for secure connections, as it helps prevent man-in-the-middle attacks.

ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:

Establish an SSH connection

ssh_client.connect(hostname=hostname, port=port, username=username, password=password)

Execute a command on the remote server

stdin, stdout, stderr = ssh_client.exec_command('ls -l')

Read the output of the command

output = stdout.read().decode()

print(output)

Close the SSH connection

ssh_client.close()

except Exception as e:

print(f"Error: {e}")

How it works:

We import the Paramiko library and define the SSH connection settings (hostname, port, username, password). We create a SSH client object using paramiko.SSHClient(). We set the missing host key policy to automatically add the host key to the list of known hosts. We establish an SSH connection using ssh_client.connect() with the defined settings. We execute a command on the remote server using ssh_client.exec_command(), which returns three file-like objects: stdin, stdout, and stderr. We read the output of the command from stdout and print it to the console. Finally, we close the SSH connection using ssh_client.close().

Tips and Variations:

You can also use Paramiko's run(), putfo(), and getfo() methods to run commands, upload files, or download files, respectively. To handle password-less connections (e.g., using public key authentication), you'll need to generate a private/public key pair and install the public key on the remote server. For more advanced scenarios, such as handling SSH tunnels or multiple concurrent SSH connections, refer to Paramiko's documentation.

Remember to replace example.com, your_username, and your_password with your actual SSH connection settings.

How to install paramiko library in Python?

Here's a detailed guide on how to install the Paramiko library in Python.

What is Paramiko?

Paramiko is a Python library that provides secure remote access to servers and networks, allowing you to interact with SSHv2, SFTP, and other protocols. It's commonly used for automating tasks, deploying software, and managing infrastructure remotely.

Why Install Paramiko?

If you're working in a DevOps or IT environment, you might need to automate tasks that involve remote access to servers or networks. Paramiko makes it easy to create Python scripts that can connect to servers, transfer files, and execute commands securely.

Installing Paramiko

Paramiko is available on PyPI (Python Package Index), making it easy to install using pip, the package installer for Python. Here's how:

Open a terminal or command prompt: On Windows, press Win + R to open the Run dialog, type cmd, and press Enter. On macOS or Linux, you can find Terminal in your Applications/Utilities folder. Install pip (if you haven't already): If you don't have pip installed, run the following command:
python -m ensurepip

This will install pip if it's not already present.

Install Paramiko: Run the following command to install Paramiko and its dependencies:
pip install paramiko

Verify the installation: To confirm that Paramiko is installed, run:
python -c "import paramiko; print(paramiko.__version__)"

This should display the version number of Paramiko you just installed.

Tips and Variations

If you want to install a specific version of Paramiko, use pip with the version number:
pip install paramiko==2.7.1 (replace 2.7.1 with your desired version)

For Python 3.x, use pip3 instead of pip:
pip3 install paramiko

If you're using a virtual environment (like Anaconda or Virtualenv), make sure to activate it before installing Paramiko.

That's it! You should now have Paramiko installed and ready for use in your Python projects.