SSHConfigBuilder~/.ssh/config

Interactive OpenSSH ~/.ssh/config File Builderv7.3+ ProxyJump

Build multi-host OpenSSH client configuration files with ProxyJump bastion hosts, IdentityFile keys, port forwarding, and keepalive settings. 100% computed on your client device with zero server telemetry.

Configured Hosts
3
Bastion Jumps
2
Port Forwards
1
Validation Status
100% Valid OpenSSH

Host Inventory & Parameters

(3 configured)
Host bastion

Name you type into terminal: ssh bastion

Real domain name or IPv4/IPv6 server address.

Remote login username.

SSH listening port (Default: 22).

~/.ssh/config(84 lines)
# ==============================================================================
# OpenSSH Client Configuration (~/.ssh/config)
# Built with Interactive OpenSSH ~/.ssh/config File Builder
# File permissions required: chmod 600 ~/.ssh/config (Directory: chmod 700 ~/.ssh)
# ==============================================================================
 
# ------------------------------------------------------------------------------
# Public AWS EC2 Bastion Gateway in eu-central-1
# ------------------------------------------------------------------------------
Host bastion
HostName ec2-3-120-10-5.eu-central-1.compute.amazonaws.com
User ec2-user
IdentityFile ~/.ssh/aws-bastion.pem
IdentitiesOnly yes
AddKeysToAgent yes
PreferredAuthentications publickey
ServerAliveInterval 60
ServerAliveCountMax 3
TCPKeepAlive yes
ConnectTimeout 10
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 30m
ForwardAgent no
ForwardX11 no
StrictHostKeyChecking accept-new
Compression yes
 
# ------------------------------------------------------------------------------
# Internal production web cluster node (VPC subnet)
# ------------------------------------------------------------------------------
Host prod-app-01
HostName 10.0.10.45
User ubuntu
IdentityFile ~/.ssh/vpc-production.ed25519
IdentitiesOnly yes
AddKeysToAgent yes
PreferredAuthentications publickey
ProxyJump bastion
ServerAliveInterval 60
ServerAliveCountMax 3
TCPKeepAlive yes
ConnectTimeout 15
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 10m
ForwardAgent no
ForwardX11 no
StrictHostKeyChecking accept-new
 
# ------------------------------------------------------------------------------
# Local port tunnel to private Postgres RDS instance via Bastion
# ------------------------------------------------------------------------------
Host prod-db-tunnel
HostName 10.0.20.100
User ubuntu
IdentityFile ~/.ssh/vpc-production.ed25519
IdentitiesOnly yes
AddKeysToAgent yes
PreferredAuthentications publickey
ProxyJump bastion
LocalForward 127.0.0.1:5432 10.0.20.100:5432
ServerAliveInterval 30
ServerAliveCountMax 5
TCPKeepAlive yes
ConnectTimeout 10
ForwardAgent no
ForwardX11 no
StrictHostKeyChecking accept-new
Compression yes
 
# ------------------------------------------------------------------------------
# Global Wildcard Settings (Applies to all hosts)
# ------------------------------------------------------------------------------
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
TCPKeepAlive yes
Compression yes
AddKeysToAgent yes
StrictHostKeyChecking accept-new
ForwardAgent no
ConnectTimeout 15
 

Installation & Terminal Quick Start

1. Install to ~/.ssh/config & lock permissions
mkdir -p ~/.ssh && chmod 700 ~/.ssh cat << 'EOF' > ~/.ssh/config # [pasted configuration] EOF chmod 600 ~/.ssh/config
2. Test SSH connection with verbose debug logs
ssh -v bastion
OpenSSH Permissions Guard

OpenSSH will strictly ignore config files and keys that have loose permissions. Run:
chmod 700 ~/.ssh && chmod 600 ~/.ssh/config ~/.ssh/id_*

Essential OpenSSH Configuration Reference & Best Practices

Architectural reference guide for building high-reliability, hardened OpenSSH client configurations.

ProxyJump vs ProxyCommand

Introduced in OpenSSH 7.3, ProxyJump bastion replaces the old ProxyCommand ssh -W %h:%p bastion. It allows chaining multiple jump nodes (e.g. jump1,jump2) while preserving end-to-end cryptographic encryption between your local terminal and target host.

IdentitiesOnly yes

When your local ssh-agent holds multiple SSH keys, the client will iteratively offer every key to the remote server. Many hardened servers disconnect after 5 failed key attempts with Too many authentication failures. Enabling IdentitiesOnly yes restricts authentication to only the specified key.

ControlMaster Multiplexing

SSH connection establishment requires TCP three-way handshake, TLS key exchange, and authentication negotiation (500ms–2000ms). Multiplexing creates a local Unix socket (ControlPath) so subsequent SSH sessions, rsync jobs, and git pushes reuse the existing connection in under 20ms.

Tunneling Modes Cheat Sheet

  • LocalForward (-L): Binds your local port and forwards traffic to remote destination. Ideal for private RDS database access.
  • RemoteForward (-R): Exposes a service running on your local machine to the remote server.
  • DynamicForward (-D): Creates a local SOCKS5 proxy to route web browser requests through the remote machine.

StrictHostKeyChecking accept-new

Setting StrictHostKeyChecking no completely bypasses MITM verification. The modern setting accept-new automatically registers unseen host keys into ~/.ssh/known_hosts without prompting, but immediately terminates the connection if a previously known host key changes unexpectedly.

Keepalive & Timeout Settings

Stateful firewalls and NAT gateways drop idle TCP sessions after 60–120 seconds. Configuring ServerAliveInterval 60 and ServerAliveCountMax 3 guarantees the client transmits encrypted null packets through the tunnel every minute, keeping the session alive indefinitely.

Technical Reference & Architecture Guide

Ssh Config Generator — Reference Guide

Interactive client-side Ssh Config Generator utility with instant in-browser processing and zero server uploads.

Key Parameters & Controls

Placement OrderInput Control

Configures placement order for Ssh Config Generator in local browser memory.

Default: Sample preset
ServerAliveInterval (Seconds)Option Control

Adjusts serveraliveinterval (seconds) behavior during client-side ssh-config-generator execution.

Default: Default
ServerAliveCountMaxResult Export

Displays and copies the formatted serveralivecountmax directly from client state.

Default: UTF-8

Pro Tips & Best Practices

Use Sample Presets in Ssh Config Generator

Load the built-in sample in Ssh Config Generator to inspect expected syntax and parameter defaults before pasting production payloads.

100% Offline Sandbox Execution

All Ssh Config Generator operations run inside your browser's JavaScript runtime without network requests, making it safe for sensitive tokens and internal configs.

Common Gotchas & Troubleshooting

Unexpected syntax or validation warning in Ssh Config Generator

Verify that the input passed to Ssh Config Generator contains valid UTF-8 characters and matches the selected mode.

Large payload responsiveness

For multi-megabyte inputs in Ssh Config Generator, disable live keystroke preview if available or process in chunks.

Frequently Asked Questions

Does Ssh Config Generator upload my input data to any external server?▼

No. Ssh Config Generator executes 100% locally inside your web browser using client-side JavaScript and Web APIs. Zero data leaves your device.

How does Ssh Config Generator handle invalid or malformed input?▼

Ssh Config Generator validates input syntax in real time and surfaces descriptive inline error messages without crashing or losing your current buffer.

Can I use Ssh Config Generator output directly in production workflows?▼

Yes. The output generated by Ssh Config Generator strictly adheres to standard specifications and can be copied or downloaded with one click.

Related Tools & Utilities

All Tools →