railway adds native SSH and SSH key management
Introduced 2026-03-18 · score 0.98
HOW TO USE IT
When opening an interactive shell, connect with `ssh <service-instance-id>@ssh.railway.com`. To manage keys, use `railway ssh keys` to list, `add` to register a local key, `remove` to delete a key, or `github` to import keys from your linked GitHub account.
ssh <service-instance-id>@ssh.railway.comrailway ssh keys add --key <public-key-path> --name <key-name>railway ssh keys removeWHY THIS HELPS
Connect interactively to a Railway service instance or manage SSH keys for a repository’s development environment.
REQUIREMENTS AND LIMITATIONS
- Version: v4.33.0
- <service-instance-id> (required): Service instance ID used as the SSH username when the service has no public domain.
- keys list: Lists registered SSH keys; `list` is the default when no subcommand is given.
- keys add: Registers a local SSH key with Railway.
- --key <PATH>: Public key file path for `add`.
- --name <NAME>: Name for the key being registered with `add`.
- keys remove: Removes a registered SSH key.
- --2fa-code <CODE>: 2FA code for verification when removing a key.
- keys github: Imports SSH keys from the linked GitHub account.
- Prerequisite: Have an SSH key registered with Railway before connecting. On the first `railway ssh`, the CLI prompts to register a local key.
- Native SSH is for interactive shells.
- Command execution and tmux sessions still use WebSocket relay because SSH exec is not supported through the QUIC tunnel.
- The `--relay` flag is hidden.
- Removing a registered SSH key supports 2FA.
FIRST-PARTY EVIDENCE
- https://github.com/railwayapp/cli/releases/tag/v4.33.0
- https://github.com/railwayapp/cli/pull/809
- https://docs.railway.com/cli/ssh
- https://github.com/railwayapp/docs/blob/main/content/docs/cli/ssh.md
Check the installed version and the source before using it. Entry JSON