quickssh
Version 0.6.0 · Linux and Windows

Reach everything behind your VPNs from one place

quickssh runs every VPN in its own isolated container. Reach servers, remote desktops, files and databases at the same time, without them getting in each other's way and without touching your computer's network.

quickssh: the grouped list of VPNs and sessions on the left, a session's route and settings on the right

Supported VPNs

FortiGateCisco AnyConnectGlobalProtectPulse / IvantiOpenVPNWireGuard

Connection types

SSH · terminalSFTPFTP / FTPSRDP · remote desktopVNCPostgreSQLMySQLMSSQLRedis
Features

Many customers, many VPNs, one window

Built for the days when VPN clients fight each other and tunnel commands are typed by hand.

Isolated VPNs

Each VPN runs in its own Docker container. Several can stay up at once; your computer's routing table and DNS stay as they are.

Built-in terminal

SSH sessions open in tabs. The route (VPNs, jump servers) is stored with the record; you just connect. A server status bar, a file panel and macros come along.

Database ports

PostgreSQL, MySQL, MSSQL and Redis get a fixed local port. DataGrip or your own app connects as if it were talking to the database directly.

Files

A full-size file manager for SFTP and FTP/FTPS. Drag files and folders onto the window; progress is shown both as file count and size.

Remote desktop

RDP and VNC sessions open inside the app as tabs. The server connects to the target; only the picture reaches your computer, never the password.

Split tunneling

Only the application you choose goes through the VPN: a browser, a command, a tool. The rest of the computer stays on its own network.

Sleeps when idle, wakes on demand

An unused VPN stops by itself. The moment a new connection comes through it, it starts again without you doing anything.

Full command line

Everything the interface does, the command line does too: adding and editing records, connecting, file transfer, backups. It works on headless servers as well.

A central server for teams

Records live on a single server. The admin decides from the panel who can reach what; passwords never land on team members' computers.

Browser extension

Open a website through the VPN or server you choose. For Chrome and Firefox; write the rule once and the site always takes the right path.

Notes

Attach notes and files to a server, a group or keep them general. Notes and their attachments stay on the server; on a central server a note you don't share is visible only to you.

Works without a license

Free up to 20 records and 3 users. A license only raises the limits; even when it expires, your records keep working.

How it works

The server does the work, the client only shows it

The server part can run on your own computer or on your team's shared machine. It makes no difference to the client.

Client

The interface and the command line. Runs on Linux; Windows and macOS clients are in the works.

  • Terminal, file and desktop tabs
  • Record forms
  • Never talks to a target directly
→

quickssh server

Runs on Linux: on this computer or remotely, and can also be installed as a single Docker image.

  • Manages the VPN containers
  • Connects to targets and authenticates
  • Enforces permissions and logs every action
  • Stores records and passwords
→

Targets

The systems behind your VPNs.

  • Servers (SSH, SFTP, FTP)
  • Desktops (RDP, VNC)
  • Databases
Terminal

Connect, work, keep the files at hand

A session opens with one click; if the VPN on its route is down, that starts first. The file panel follows the directory you move to in the terminal.

  • CPU, RAM, disk, network and GPU gauges
  • Uploads and downloads, folders included
  • Macros: record the steps you repeat and play them back
  • VPN → VPN → SSH → SSH chains
Terminal tab: the shell on the left, the file panel on the right, the server status bar at the bottom
Databases

Don't build a tunnel, copy the address

Define the record once: target, route and a fixed port. Your tools connect to that port on 127.0.0.1; the server takes care of the rest.

  • Ready-made URL, JDBC and command-line examples
  • A stopped VPN starts by itself on the first connection
  • The port is fixed, so you set up your tool once
Database record: the connection details card with host, port, user and ready-made connection strings
VPN

Open the VPN to your own tools too

Every VPN offers an SSH tunnel and a SOCKS5 proxy. You can send your browser, your IDE or a single application through that VPN.

  • Split tunneling sends the application you pick through the VPN
  • Ready-made code samples for Java and C#
  • On a remote server, ports open only to your IP address
VPN page: SSH tunnel and proxy details, and the split tunneling card
Files

SFTP and FTP in the same window

File sessions open as a full-size file manager. An upload is tracked as a single transfer.

  • Upload files and folders by drag and drop
  • Separate progress for file count and size
  • FTPS (TLS) and connections through a VPN
SFTP tab: the file list, and a transfer at the bottom showing progress by file count and size
Security

Passwords stay where they belong

quickssh was designed to keep access credentials from spreading.

Encrypted records

Storing records on your own computer requires a master password. The record file is encrypted with Argon2id and XChaCha20-Poly1305; even if the file is stolen, it can't be opened without the password.

Secrets never leave the server

On a central server, the server connects to the targets. A team member uses the connection but never sees the password; the admin reveals it only to the people they allow.

Permissions, OTP and audit

Access is granted per record or per group. The client can be locked with a one-time code (TOTP). Every connection, transfer and change is logged under the user's name.

Temporary access

With a small agent installed on the target, each connection gets its own key, which is deleted when the connection closes. No permanent login stays on the target.

Get started with a few commands

All you need is Docker. Run the server on your own computer or as a single container.

# a VPN and a server behind it
$ quickssh add acme --kind fortigate --host vpn.acme.com -u alice
$ quickssh add-ssh web --host 10.20.0.15 -u deploy --vpn acme
$ quickssh connect web   # if the VPN is down, it starts first