Runpod: How to Set Up Full SSH for SCP and IDEs on GPU Pods
GPU cloud provider Runpod has released a tutorial on setting up "real" SSH. Regular terminal access through the proxy gives you only a command line. A full sshd on the pod opens up SCP file transfers and remote IDE connections, such as VS Code. For developers who run training and inference on rented GPUs, this saves time on routine chores. • Proxy SSH: interactive terminal only. • Real SSH: SCP, SFTP, port forwarding, Remote-SSH in IDEs. • You need a template with sshd, a public key and an open TCP port.
AI-processed from RunPod Blog; edited by Hamidun News
GPU cloud platforms mainly sell compute, but an engineer's daily work gets stuck on small things: how to upload a 50 GB dataset, how to open a project in a familiar IDE, how to forward a port to Jupyter. Runpod has published a blog guide that covers exactly this layer. It explains how to set up a full SSH daemon on a pod, after which SCP and code editor connections work.
The source material we have is short, so below we rely on what it states and on the generally known way SSH works in Runpod. Specific interface items and template parameters are best checked against the platform's current documentation.
Two ways to get into a pod
Runpod has two SSH modes. The first goes through the platform's proxy. Its advantage is that it requires no configuration: you get an interactive terminal. But it is only a terminal. SCP, SFTP and remote development in an IDE do not work over this connection, because the other end has no full SSH server that understands those protocols.
The second mode is "real" SSH. An sshd runs inside the container, and port 22 is exposed externally as a TCP port with a public IP. The client connects directly, as it would to an ordinary VPS. This is the scenario the tutorial walks through.
What you need for setup
The scheme is standard for any remote host with key-based authentication. The general order is:
- choose a template (image) that has an OpenSSH server installed and running;
- add your public key to your account settings or to the pod's environment variables;
- make sure the pod is hosted on a machine with a public IP and TCP port 22 is open;
- connect with a command like `ssh root@<IP> -p <external port> -i ~/.ssh/key`;
- copy files with `scp -P <port>` or an SFTP client.
One caveat: the external port the client sees is usually not 22. The platform shows it on the pod's card, and that is the port you need to specify when connecting. A typical beginner mistake is trying to connect to the default port.
Why engineers should care
The main win is the IDE. VS Code and JetBrains can work over SSH: the code sits on the remote GPU machine, while the editor, debugger and terminal run locally. For a developer who is fine-tuning a model or debugging inference, this removes the need to keep code in a browser-based Jupyter or copy files by hand.
The second win is data transfer. SCP and rsync-like workflows let you quickly pull checkpoints and logs off the pod before it is stopped. When rental is billed by time, extra minutes spent exporting artifacts turn into money.
The third is port forwarding. An SSH tunnel lets you securely open TensorBoard, an inference server's web interface or Jupyter locally, without exposing them to the internet.
In practice: what to watch for
Check a few things before starting a long job. First, handle your keys properly: a separate key pair for the cloud, a passphrase, and password login disabled. A public IP means bots will scan your sshd within minutes of the pod starting.
Second, remember that containers are ephemeral. sshd settings and keys added by hand inside the pod may not survive a recreation. It is safer to bake them into your own template or startup script.
Third, write everything important to a persistent volume, not the container's file system. SSH makes access easier, but it does not change the platform's data storage rules.
Finally, if all you need is a quick terminal to check logs, the proxy mode is enough. Real SSH makes sense when you work with a pod for hours: editing code, running experiments and regularly moving files.
Build & Ship Production AI Apps with Vibe Coding
Join Zhemal Khamidun's hands-on Vibe Coding Intensive at hamidun.com/vibecoding — master Claude Code, Cursor, and autonomous agentic workflows.
The AI world, distilled — once a week
Seven stories that actually mattered, hand-picked. No noise, no reposts, no press releases.
Done! Check your inbox for a confirmation.