TransIT AI

How-tos

Import connections in bulk

Transit AI imports your existing SSH connections in bulk from five sources — a SecureCRT export, an MTPuTTY server list, a MobaXterm sessions or configuration export, an OpenSSH ssh_config, or a CSV file. It reads host, port, username, folder structure, and key-file paths, then walks you through mapping each login to a credential before anything is saved.

Transit never reads or decrypts your stored passwords. The SecureCRT password vault and config passphrase are ignored entirely, MTPuTTY’s encrypted password fields are never read, MobaXterm keeps its passwords in its own credential store (they aren’t in the exported session lines at all), and a CSV has no password column. Secrets are enrolled separately into your OS keychain during the import — they never live in the imported file.

Open the importer

Three equivalent ways:

  • Click the Import button (down-arrow) in the connections sidebar header.
  • On the welcome screen, choose the Import option.
  • Press ⌘K and run Import connections….

The importer is a three-step, full-pane wizard: 1 · Source, 2 · Credentials, 3 · Review & import. Nothing is written to your inventory until you click Import on the last step, and the batch is all-or-nothing — a single bad row writes nothing, so your existing connections are never left half-changed.

What Transit reads — and what it never touches

Reads from your fileNever reads
Hostname / IP, port, usernameStored passwords
Folder / session hierarchy → groupsThe SecureCRT password vault (Password V2) / MTPuTTY Password fields
Key-file paths (never key contents)The SecureCRT config passphrase
Jump-host / ProxyJump references(CSV has no password column)

Credentials are mapped in step 2, not pulled from the file. Transit groups your connections by distinct login, shows one row per login, and lets you point each at an existing auth profile or create a new one — the secret goes straight to your OS keychain. See Create an auth profile.

Method 1 — SecureCRT

Select your SecureCRT SCRTConfig.xml — the single-file session store SecureCRT keeps in its configuration folder (you can also produce it with SecureCRT’s Export Settings action). Transit parses the modern VanDyke version="3.0" format as real XML.

SecureCRT fieldTransit field
HostnameHost
[SSH2] PortPort (default 22)
Username (or the named credential’s username)Username
Session foldersGroup, e.g. Lab/Core
Firewall NameJump host (unless None)
Identity Filename V2Key-file path
Credential TitleLinks to a shared credential, deduped once

Only SSH2 sessions are imported. Telnet, Serial, RDP, and Local Shell sessions are skipped — you’ll see them listed in the notes — as are SecureCRT’s built-in Default templates.

The encrypted password vault (Password V2) and the configuration passphrase are never read, not even into a discarded variable. You re-enter those secrets once, in step 2.

Method 2 — OpenSSH ssh_config

Point the importer at an OpenSSH client config — your ~/.ssh/config, or any file containing Host blocks.

ssh_config directiveTransit field
Host <alias>Connection name
HostNameHost (falls back to the alias)
PortPort (default 22)
UserUsername
ProxyJumpJump host (unless none)
IdentityFile (the first one wins)Key-file path

Three things to know:

  • Wildcard-only blocks are skipped. Host * and similar are defaults, not real hosts. A block that mixes a concrete name and a wildcard (e.g. Host edge *.lab) is kept under the concrete name.
  • Include directives are not followed. Transit reads only the single file you pick. If your hosts live in included files, point the importer at the file that actually holds the Host blocks, or concatenate them first. Any skipped Include is reported in the notes.
  • No vendor or folder. ssh_config carries neither, so set the vendor and group in the review grid (you can bulk-set a whole selection at once).

Method 3 — CSV (the universal format)

CSV is the escape hatch — build it from a spreadsheet, an inventory export, or a script. Only the host column is required; everything else is optional.

Columns

ColumnAccepted headersRequiredDefaultNotes
HosthostYesIP or hostname. The only required column.
Namename, idNothe host valueThe connection’s name.
PortportNo22
Usernameusername, userNo
VendorvendorNounknownOne of the tags below.
GroupgroupNo/-separated folder path, e.g. Lab/Core.
Key pathkey_path, identity_fileNoPath to a private key; ~ is expanded.

Headers are matched by name, case-insensitively, in any orderHost, HOST, and host are equivalent, and columns can appear in any sequence. Unknown columns are ignored. There is no password column: a CSV row never carries a secret.

Vendor tags

The vendor value is lowercase and case-sensitive. Use one of:

TagDevice
junosJuniper Junos
cisco_iosCisco IOS
cisco_ios_xeCisco IOS-XE
nxosCisco NX-OS (alias: cisco_nxos)
arista_eosArista EOS
pan_osPalo Alto PAN-OS
linuxLinux / Unix (unrestricted policy)
unknownOther / unset

Any other lowercase tag — letters, digits, and underscores — is accepted as a custom vendor that you pair with your own permit list. See Vendor coverage.

Save as UTF-8 without a BOM

Save the file as plain UTF-8 with no byte-order mark. Some spreadsheet apps add one (Excel’s CSV UTF-8 option does); a BOM hides the host header from the parser, and the import fails with missing required host column. A normal editor’s UTF-8, and the template below, are correct.

Download the CSV template

Download transit-connections-template.csv — a ready-to-edit header row with example rows for several vendors plus one minimal host-only row.

name,host,port,username,vendor,group,key_path
core-rtr1,192.0.2.1,22,netops,junos,Lab/Core,
dist-sw1,192.0.2.2,22,netops,arista_eos,Lab/Distribution,~/.ssh/id_ed25519
edge-fw1,192.0.2.3,22,admin,pan_os,Lab/Edge,
spine1,192.0.2.4,2222,admin,nxos,DC1/Spine,
app-server1,192.0.2.10,22,root,linux,Servers,
,192.0.2.50,,,,,

The addresses use the 192.0.2.0/24 documentation range, so they won’t collide with real gear. The last row shows the minimum — a bare host — which imports as a connection named 192.0.2.50, port 22, vendor unknown, with no credentials yet.

Method 4 — MTPuTTY

In MTPuTTY, use Server → Export and save the XML file, then point the importer’s MTPuTTY tile at it. Copying the app’s own %APPDATA%\\TTYPlus\\mtputty.xml works too — both file shapes are accepted.

What comes across: display names, host, port, username, and your folder tree (as groups). Entries whose username, port, or key file live only in the PuTTY command-line parameters (-l, -P, -i, user@host) are picked up from there as a fallback.

Two kinds of entries are listed as skipped in the review notes rather than imported:

  • Registry-backed entries — an MTPuTTY server that only references a PuTTY saved session stores its host and port in the Windows registry, not in the XML. Open the session in PuTTY, note the host, and add it in Transit manually (or set the host on the MTPuTTY entry and re-export).
  • Non-SSH connection types — telnet, rlogin, raw, and serial entries are named in the notes and left out.

MTPuTTY’s Password / PlainPassword fields are never read — you map each login to a Transit credential in step 2, same as every source.

Method 5 — MobaXterm

Any of MobaXterm’s three session-bearing files works:

  • Right-click User sessionsExport sessions to file (.mxtsessions) — sessions only, the tidiest option.
  • Settings → Export configuration (.mobaconf) — the full backup; Transit reads just the bookmark sections and ignores the rest.
  • The live MobaXterm.ini from %APPDATA%\\MobaXterm (or next to the portable executable).

SSH sessions import with host, port, username, private-key path (when one is set), and your bookmark folder tree as groups. Everything else — telnet, RDP, VNC, SFTP, WSL, browser sessions — is named in the review notes as skipped, so nothing disappears silently.

MobaXterm stores session passwords in its own credential store; they are not present in the exported lines and Transit never touches them. Accented session names are fine — the importer handles MobaXterm’s Windows-1252 file encoding automatically.

Review, de-duplicate, and import

The review grid lists every connection found. Edit any cell inline — name, host, port, vendor, group, auth profile — or select several rows and bulk-set a field. Each row shows a status, and a notes disclosure collects every parser warning (skipped sessions, unfollowed Includes, rows with no host).

De-duplication is automatic and never destructive:

  • Duplicate within the file — a second connection that resolves to the same name gets a numeric suffix (core-rtr1, then core-rtr1-2). Nothing is dropped.
  • Already in your inventory — a connection whose name matches an existing device is flagged and left unchecked. Rename it to import it, or leave it excluded to skip it. Transit never silently overwrites a connection you already have.

Names are normalized to letters, digits, _, and -; other characters collapse to a single - (so core rtr 1 becomes core-rtr-1).

Click Import to commit. Auth profiles you created are already saved, and the connections are written in one atomic batch.

Limits

  • File size — 64 MiB. The parser refuses anything larger; a real SecureCRT export is ~1–2 MiB, so this is generous.
  • Connection count — no limit.
  • Encoding — UTF-8, plus Windows-1252 (what MobaXterm and other Windows exports actually write) detected automatically.

Troubleshooting

  • missing required host column — The CSV’s header row has no host column, or the file was saved with a BOM that hid it. Add a host header and re-save as UTF-8 without a BOM.
  • “No connections were found in that file.” — For ssh_config, the hosts may live in Included files (not followed), or the file is all wildcard Host * blocks; point at the file with real Host blocks. For SecureCRT, confirm you selected the SCRTConfig.xml (it has a <VanDyke> root).
  • A SecureCRT session is missing — Non-SSH2 sessions (Telnet, Serial, RDP, Local Shell) are skipped by design. Check the notes list on the review step.
  • The vendor imported as unknown — The vendor cell was empty or not one of the tags above (values are lowercase and case-sensitive). Set it in the grid, or bulk-set a selection.
  • Where do my passwords go? — Nowhere, from the file. You map each login to a credential in step 2, and the secret is enrolled into your OS keychain at that point.