Connect to your Pods with SSH to manage long-running processes and critical tasks.
Connecting to a Pod through an SSH (Secure Shell) terminal provides a secure and reliable method for interacting with your instance. Use this to manage long-running processes, critical tasks, and when you need the full capabilities of a shell environment.
Every Pod offers the ability to connect through SSH using the basic proxy method below (which does not support commands like SCP or SFTP), but not all Pods support the full public IP method.
This saves your public/private key pair to ~/.ssh/id_ed25519.pub
and ~/.ssh/id_ed25519
respectively.
If you are using Command Prompt on Windows instead of the Linux terminal or WSL, your public and private key pair will be saved to C:\Users\YOUR_USER_ACCOUNT\.ssh\id_ed25519.pub
and C:\Users\YOUR_USER_ACCOUNT\.ssh\id_ed25519
, respectively.
Retrieve your public SSH key by running this command:
This will output something similar to this:
Copy and paste the output into the SSH Public Keys field in your Runpod user account settings.
If you need to add multiple SSH keys to your Runpod account, make sure that each key pair is on its own line in the SSH Public Keys field.
Runpod will attempt to automatically inject the public SSH keys added in your account settings for authentication when connecting using the basic terminal method. If you prefer to use a different public key for a specific Pod, you can override the default by setting the SSH_PUBLIC_KEY
environment variable for that Pod.
All Pods provide a basic SSH connection that is proxied through Runpod’s systems. This method does not support commands like SCP (Secure Copy Protocol) or SFTP (SSH File Transfer Protocol).
To connect using this method:
Ensure you have an SSH key pair generated on your local machine and added to your Runpod account.
Navigate to the Pods page in the Runpod console.
Expand your Pod and select Connect.
Select the SSH tab. Copy the command listed under SSH. It should look something like this:
If you saved your key to a custom location, use that specific path after the -i
flag instead.
For full SSH capabilities, including SCP and SFTP for file transfers, you need to rent an instance that supports a public IP address and ensure an SSH daemon is running within your Pod.
If you’re using a Runpod official template such as Runpod PyTorch or Stable Diffusion, no additional setup is required, as full SSH access is already configured for you.
However, if you’re using a custom template, ensure that TCP port 22 is exposed and that the SSH daemon is running inside your Pod. If it isn’t, add the Docker command below to your template (or, if you already have a custom start command, replace sleep infinity
at the end of your command with this one):
Once you’re sure that the SSH daemon is running, you can connect to your Pod by following these steps:
If you saved your key to a custom location, use that specific path after the -i
flag instead.
The SSH command above has the following structure:
Where:
root
: Your assigned username for the Pod (typically root
).[POD_IP_ADDRESS]
: The public IP address of your Pod.[SSH_PORT]
: The designated public SSH port for your Pod.[PATH_TO_SSH_KEY]
: The local file path to your private SSH key.If you’re asked for a password when connecting to your Pod via SSH, this means something is not set up correctly. Runpod does not require a password for SSH connections, as authentication is handled entirely through your SSH key pair. This prompt usually indicates a problem with your SSH key configuration.
Here are some common reasons why this might happen:
SHA256:
) into your Runpod user settings instead of the actual public key (the contents of your id_ed25519.pub
file), authentication will fail.ssh-ed25519
), the key will not be recognized.No such file or directory
error).bad permissions
error).~/.ssh/config
) points to the wrong private key, you will also be prompted for a password. Make sure the IdentityFile
entry in your config file matches the private key that corresponds to the public key you added to your Runpod account.