WebTools

307 Useful Tools & Utilities to make life easier.

SSH Config Generator

Create professional SSH client configuration files for easy server access.

Configure Your SSH Hosts
~/.ssh/config Preview

                    

Overview

The SSH Config Generator is an intuitive, web-based utility designed to help developers, system administrators, and DevOps engineers effortlessly construct and manage SSH configuration files. Rather than manually writing out complex, sometimes error-prone ~/.ssh/config files by hand, this tool provides a reactive, graphical interface to input all necessary connection variables and output a perfectly formatted text block.

From a technical standpoint, the tool leverages a responsive frontend built on the Livewire framework and Alpine.js. By using Alpine's reactive data binding (such as x-model and x-data), users can instantly preview the generated SSH directives as they adjust configurations without needing a page refresh or server round-trip. The modular structure accommodates multiple host profiles simultaneously, dynamically building out an array of configuration objects. It incorporates built-in support for standard directives like HostName, User, and Port, along with more advanced SSH networking features such as IdentityFile mapping, ProxyJump configurations for bastion hosts, and optional ForwardAgent boolean toggles. The final outcome is safely localized in the browser and exposed with one-click clipboard capabilities, ensuring no sensitive IP addresses or infrastructure details are needlessly transmitted to a backend server.

Practical Worked Example

To demonstrate the utility of the SSH Config Generator, let’s assume a user needs to configure connections to two different servers: a primary production web server and an internal database server that must be accessed through a jump host.

Input Parameters

  • Host 1 (Web Server):
    • Host Alias: production-web
    • Hostname / IP: 203.0.113.50
    • User: deploy
    • Port: 2222
    • Identity File: ~/.ssh/id_ed25519_prod
    • Keep Alive: Enabled
  • Host 2 (Database via Bastion):
    • Host Alias: internal-db
    • Hostname / IP: 10.0.0.15
    • User: admin
    • Port: 22
    • ProxyJump: production-web

Generated Output

Once the Generate Config button is clicked, the tool processes the object array and renders the following configuration text snippet, which can be directly copied into a user's ~/.ssh/config file:

# Generated by CyberTools SSH Config Generator

Host production-web
    HostName 203.0.113.50
    User deploy
    Port 2222
    IdentityFile ~/.ssh/id_ed25519_prod
    ServerAliveInterval 60
    ServerAliveCountMax 3

Host internal-db
    HostName 10.0.0.15
    User admin
    ProxyJump production-web

Frequently Asked Questions

Where should I save the generated configuration output?
The generated text should be saved to your local SSH client configuration file. On Linux and macOS systems, this file is located at ~/.ssh/config. On Windows machines, it is typically found at C:\Users\YourUsername\.ssh\config. Ensure that the directory has the appropriate permissions (e.g., chmod 700 ~/.ssh and chmod 600 ~/.ssh/config on Unix-like systems) to prevent SSH from ignoring the file due to security warnings.
What does the "Keep Alive" option do?
When you toggle the "Keep Alive" switch, the tool appends ServerAliveInterval 60 and ServerAliveCountMax 3 to that specific host block. This instructs your SSH client to send a null packet to the server every 60 seconds to keep the connection active. This is particularly useful for preventing firewalls or load balancers from dropping idle SSH sessions over time.
How does ProxyJump work in the generated config?
The ProxyJump directive is used to securely route your SSH connection through an intermediary server (often called a bastion host or jump box) before reaching your final destination. In the tool, if you define a ProxyJump value (like another Host Alias you've configured), SSH will automatically establish a connection to the jump host first, and then tunnel your final connection through it seamlessly. This replaces older, more verbose ProxyCommand setups.
Is my server data sent to your backend servers?
No. The SSH Config Generator is powered by a client-side implementation. When you type in your IP addresses, usernames, and custom port configurations, the string building happens entirely within your web browser's memory. This means your infrastructure blueprints and architectural data remain private and are not logged or stored externally.
Can I use a custom SSH key for just one specific host?
Absolutely. By filling out the Identity File (Optional) field, you specify a dedicated private key path (such as ~/.ssh/id_rsa_special) for that exact host. The generated config will bind that key strictly to the targeted alias, allowing you to seamlessly manage multiple SSH keys for different environments without polluting your local ssh-agent.
What is the Forward Agent option used for?
The ForwardAgent yes directive securely forwards your local SSH agent to the remote server. This allows you to SSH into the remote machine, and then from that remote machine, authenticate to other services (like private GitHub repositories or inner-network nodes) using the SSH keys stored on your local computer, without needing to manually copy your private keys to the remote host.

Contact

Missing something?

Feel free to request missing tools or give some feedback using our contact form.

Contact Us