Connecting with SSH


You can connect to your services on Render using SSH, in addition to using the shell in the dashboard.

How to connect to a service

  1. If this is your first time using SSH with a Render service, add an SSH key to your Render account.

  2. Find the service you want to connect to in the dashboard.

  3. Click the Connect button, and then click the SSH tab. ssh connect

  4. Copy the SSH command to your clipboard.

  5. In a terminal, paste the command you copied earlier.

    ssh YOUR_SERVICE@ssh.YOUR_REGION.render.com
    If your service has multiple instances, you will connect to one instance at random.
  6. You may see a warning like this:

    The authenticity of host 'render.com (IP_ADDRESS)' can't be established.
    ED25519 key fingerprint is (SSH_KEY_FINGERPRINT)
    Are you sure you want to continue connecting (yes/no)?

    Verify that the fingerprint in the message you see matches Render’s public key fingerprint. If it does, then type yes.


If you receive a “permission denied” message, see Troubleshooting SSH.

Render’s SSH Key Fingerprints

Public key fingerprints can be used to validate a connection to a remote server.

Render’s public SSH key fingerprints are listed below

  • SHA256:KkZPgnApmttFYSkdJsCi7B01sgZPMI6kY53MDbbanGM (Ed25519)
  • SHA256:dBRrCEA0tBkvaYLzzDw/mzaANw6nUJO961Zx806spZs (Ed25519)
  • SHA256:kRDsLlrHqOyqso58sEKyO6ZFMPj7p24zfNxYJ42yXGI (Ed25519)

Service Instance Memory Usage

When connecting to a service instance via SSH, memory consumed is part of the service plan’s memory limits. Using SSH requires 2 MB of memory plus ~3 MB for each active session, not including the memory of the programs run by each session.

For example, if SSHing into one service instance from two different computers to run bash, memory usage would be:

  • 8 MB for SSH
    • 1.8 MB for SSH access
    • 2x3 MB for the two SSH sessions
  • 7 MB for bash
    • 2x3.5 MB for the two bash processes

Total memory usage would be 15 MB.

Limitations

  • Services that haven’t been deployed since January 11, 2022 need to be redeployed to enable SSH.
  • SSH is not supported for free plan services, cron jobs, or static sites.
  • You can only SSH into a service that’s owned by you or a team you belong to. SSH is not supported for a service that’s shared with you.
  • Some Docker service configurations are not supported.
    • Dockerfiles that use the root account cannot lock the account. Use usermod --unlock root or passwd -u root to unlock the account.
    • Dockerfiles that specify a non-root user with the USER instruction must have user accounts set up. To SSH into these services, either create a user account with a tool like useradd or use the root (UID 0) account.
    • Dockerfiles must have a ~/.ssh directory.
    • The ~ and ~/.ssh directories must be owned by the running user and have a permission that only gives the owner write access. For example, use chmod 0700 ~/.ssh to change the permission.
    • A disk may not be mounted to the $HOME directory of the running user.
  • Users with versions of OpenSSH 8.8 and up are not able to use RSA keys. See RSA key troubleshooting for tips to connect with OpenSSH 8.8.