jump443.net

SSH config

Add this to ~/.ssh/config for the best experience:

Host jump443
    HostName ssh.jump443.net
    Port 443
    User jump443
    IdentityFile ~/.ssh/id_ed25519
    ControlMaster auto
    ControlPath ~/.ssh/cm-%r@%h:%p
    ControlPersist 60s
    ServerAliveInterval 30
    ServerAliveCountMax 3

Now you can use jump443 as a short name everywhere:

ssh -J jump443 user@your-server.com

Or make it permanent for a specific host:

Host myserver
    HostName your-server.com
    User kristian
    ProxyJump jump443
ssh myserver
# tunnels through jump443 automatically

ControlMaster

The ControlMaster / ControlPersist lines in the config above are important. Without them, every SSH invocation opens a new TCP connection and authenticates from scratch — each one costs a trial connection.

With ControlMaster, the first connection authenticates and all subsequent connections reuse that session for 60 seconds after the last one closes. One auth, many operations.

This means you can run management commands and ProxyJump connections back to back without burning extra trial credits:

ssh -J jump443 user@myserver    # auth happens here (1 trial credit)
ssh jump443 status              # reuses the session (free)
ssh -J jump443 user@myserver    # still reusing (free)

Command reference

All commands are run as:

ssh jump443 <command> [args]

(Assumes the SSH config above. Otherwise: ssh -p 443 jump443@ssh.jump443.net <command>)

Account

Command Description
status Show account info, plan, trial balance, hosts, and keys
upgrade Show pricing and payment options

Destination hosts

Command Description
list-hosts List your whitelisted destination hosts
add-host <host> Add a destination (hostname or IP, max 2)
delete-host <host> Remove a destination

Hosts are hostnames or IP addresses — no port. Port is controlled on your SSH client side. jump443 allows all ports to your whitelisted hosts.

Replacing a host after your initial 2 slots are used triggers a 7-day cooldown to prevent abuse.

SSH keys

Command Description
list-keys List registered public keys with fingerprints
add-key Read a public key from stdin and register it
delete-key <fp> Remove a key by fingerprint (can't delete last key)
ssh jump443 add-key < ~/.ssh/id_ed25519.pub
Key added: SHA256:abc123...

ssh jump443 delete-key SHA256:abc123
Key removed: SHA256:abc123...

Lost your SSH key?

If you no longer have the private key for your registered key, use the email-based reset flow. You'll need access to the email address on your account:

Command Description
reset-request <email> Send a reset token to your registered email address
reset <token> Add a new public key using the token from the email
ssh -p 443 jump443-signup@ssh.jump443.net reset-request your@email.com
ssh -p 443 jump443-signup@ssh.jump443.net reset TOKEN < ~/.ssh/new_key.pub

Reset tokens expire after 24 hours and can only be used once. See Getting started for the full signup flow.

Troubleshooting

"administratively prohibited"

Your trial has expired or you're trying to reach a host that isn't in your whitelist. Run ssh jump443 status to check your account and ssh jump443 list-hosts to verify your hosts.

"Permission denied (publickey)"

Your SSH key isn't registered with jump443. Make sure you're using the same key you registered with. Check with ssh jump443 list-keys and compare fingerprints against ssh-keygen -lf ~/.ssh/id_ed25519.pub.

"Connection refused" on port 443

The SSH service lives on ssh.jump443.net, not jump443.net. Make sure your config points to ssh.jump443.net port 443.

Connection works once, then trial runs out fast

You're probably not using ControlMaster. Every SSH invocation opens a new connection and burns a trial credit. See the ControlMaster section above.

Verbose debugging

ssh -vvv -J jump443 user@your-server.com 2>&1 | head -60

This prints the full SSH negotiation. Look for which key is offered, whether the tunnel opens, and where it fails.