Roles and permissions
SSH key management is controlled by org roles.Members can still add personal SSH keys to their own account in addition to org-managed keys. See Personal vs. org keys for how these interact.
Adding an SSH key
Step 1: Generate a key pair
If you don’t already have an SSH key pair, generate one on your local machine. Runpod only stores the public key. Never paste your private key anywhere.- macOS / Linux
- Windows (PowerShell)
~/.ssh/id_ed25519) or specify a custom path. To view your public key:Step 2: Add the public key to your org
- Open the Runpod console and navigate to Settings → Organization → SSH Keys.
- Click Add SSH key.
- Paste your public key into the field.
- Give the key a name (for example,
alice-macbookorci-deploy-key) so it’s easy to identify later. - Click Save.
Managing keys
To view, rename, or delete org SSH keys:- Navigate to Settings → Organization → SSH Keys.
- Find the key you want to manage.
- To rename it, click the key name and edit it inline.
- To delete it, click the three-dot menu next to the key and select Delete.
Key scope and membership
New Pods launched after a key is added automatically have all current org SSH keys injected at startup. Existing running Pods do not receive newly added keys unless they are restarted.Personal vs. org keys
Members can maintain personal SSH keys in their individual account settings in addition to org keys. Both sets of keys are injected into Pods the member launches. Either key can be used to connect. If a member is removed from the org, their org key access is revoked, but their personal keys are unaffected.Connecting to a Pod
Once an org SSH key is set up, any member whose private key matches an org public key can connect to a Pod.Find the connection details
- Open the Pods page and expand the Pod you want to connect to.
- Click Connect to view the SSH connection string.
Basic SSH
<pod-ip> and <port> with the values shown in the console.
SSH over exposed TCP
If the Pod exposes SSH over a TCP proxy (common for Secure Cloud Pods):Troubleshooting
Permission denied (publickey)- Confirm that the private key on your machine matches a public key stored in org settings.
- Verify the key was added before the Pod was launched. Org keys are only injected at Pod startup. Restart the Pod if you added the key after it was created.
- Check that you’re using the correct private key file with
-i ~/.ssh/id_ed25519.
- Double-check the IP and port from the console. These change each time a Pod is restarted.
- Org SSH keys are injected at Pod creation time. If you added the key to org settings after the Pod launched, you must restart the Pod for the key to take effect.
- The member needs to provide the private key for one of the org’s public keys. Verify they have the corresponding private key for a key stored in org settings.
- Removing a member from the org revokes their org key access. However, if the member had a personal SSH key added to a Pod before joining the org, that key remains on the Pod. Audit Pod-level keys if you need to ensure full revocation.
Security notes
Only store public keys. Never paste a private key into Runpod. Your private key should remain only on the machine you use to connect. Use strong key types. Ed25519 (-t ed25519) is recommended. RSA keys should be at least 4096 bits (-t rsa -b 4096). Avoid DSA and ECDSA with short curves.
Rotate keys regularly. If a key may be compromised, delete it from org settings immediately and generate a new key pair. Affected members will need to add their new public key.
Offboarding members. When a member leaves the org, remove their key from org settings to revoke SSH access. If they shared a key with others, replace it with a fresh key pair distributed only to current members.
Audit keys periodically. Review your org’s SSH keys in Settings → Organization → SSH Keys and remove any keys that are no longer in active use.