Import Your ~/.ssh/config to iPhone and iPad
If you have used SSH seriously for any length of time, your ~/.ssh/config is a small, carefully-maintained database: short aliases, the right username per host, non-standard ports, and the bastion relationships that make internal machines reachable. Re-entering that by hand on a phone is both tedious and a good way to introduce a typo you will debug later. Import it instead, and understand what does and does not come across, so you are not surprised by a gap.
Written by the GateShell team at Hefty Innovations
Step by step
- 1
Get the config file onto your device
Put ~/.ssh/config somewhere the document picker can reach, such as iCloud Drive. Copy the file rather than moving it, and note that you want the config file only, not your private keys, which are handled separately and deliberately.
- 2
Run the import
In Settings, choose Import SSH Config File and select it. GateShell parses the file and shows you what it found before anything is saved, so you can review rather than discovering the result afterwards.
- 3
Know what comes across
Host aliases, HostName, User, Port, and single-alias ProxyJump relationships are imported. That covers the substance of most configs: which machines exist, how to reach them, as whom, and through what. Jump relationships are preserved as real links between the imported entries rather than flattened, so the bastion topology survives the move.
- 4
Know what does not, and why
IdentityFile references are shown and reported rather than followed. This is not an oversight: a sandboxed iOS app cannot silently read arbitrary key files from your filesystem, and you would not want one that could. Match blocks, Include directives, and inline comma-separated ProxyJump chains are not parsed either. Anything unresolved is reported explicitly, so you get a list of what needs attention instead of a silently incomplete import.
- 5
Attach your keys
For each host that referenced an IdentityFile, assign a saved key in the server's settings. If the key is not on the device yet, either import it or generate a new one and add the public half to the server's authorized_keys. This is a good moment to consider Secure Enclave keys for hosts you reach from the phone, since they cannot be exported from the device at all.
- 6
Connect once to each imported host
Worth doing deliberately rather than waiting until you need it. The first connection pins each host key, which means any later host-key warning is a real signal rather than a first-time prompt you dismiss out of habit. It also surfaces any username or port that did not survive the trip, while you have the laptop in front of you to check against.
Frequently asked questions
Will this import my private keys?+
No, and deliberately so. Only the config file is read. IdentityFile lines are reported so you know which hosts expect which key, but the key material itself is never read from an arbitrary path, because a sandboxed app that could do that would be a liability. Import or generate keys separately through the key manager.
What happens to Match blocks and Include directives?+
They are not parsed, and the entries depending on them are reported as unresolved rather than imported incorrectly. For most personal configs this affects nothing; for a large corporate config built from Includes, expect to set up some hosts manually.
Does ProxyJump survive the import?+
Single-alias ProxyJump relationships do, as real links between the imported servers. Inline comma-separated chains are not parsed, so set those up with the jump-host picker afterwards. The underlying capability handles multi-hop chains fine; it is only the config parsing that is narrower.
Can I import again later without duplicating everything?+
Review the preview before confirming. It shows what will be created, so you can see overlap with what you already have. For a config that changes often, importing the whole file repeatedly is not the intended workflow; add new hosts directly and keep the import for the initial migration.
Is there a faster way to add several servers at once?+
Yes. There is bulk import from a CSV file or pasted text, with preview, duplicate detection, and credentials deliberately excluded. That is the better path when your source of truth is an inventory or spreadsheet rather than an SSH config.
Try it in GateShell
GateShell is a zero-backend SSH client for iPhone, iPad, and Mac, with no vendor cloud, no accounts and no telemetry. Everything above works out of the box.
Guide reflects GateShell's shipped features as of September 2026. Steps assume basic familiarity with SSH and the command line; server-side commands may vary by distribution. All product names, logos, and brands are property of their respective owners.