quickssh

Installation

You can install quickssh on your own computer, as a single container or as a central server for your team. Whichever you choose, the main requirement is Docker.

Requirements

WhatWhy
Linux (x86_64)The server runs only on Linux. The ready-made package needs glibc 2.30 or newer (Ubuntu 20.04+, Debian 11+).
DockerVPNs and the remote desktop service run as containers.
ssh, ssh-keygenConnections use the system's OpenSSH.
sftp, curl, tarFor file sessions (SFTP, FTP) and file transfer.

FortiGate VPNs need the ppp_async kernel module.

On your own computer (Linux)

Get the package from the Download page or fetch the latest version directly, then install the two files into the same directory:

curl -fLO https://quick-ssh.earthquick.dev/indir/quickssh-linux-x86_64.tar.gz
tar -xzf quickssh-linux-x86_64.tar.gz
sudo install -m 755 quickssh-*-linux-x86_64/quicksshd quickssh-*-linux-x86_64/quickssh /usr/local/bin/

Make sure your user can run Docker:

docker info

Then open the app:

quickssh

On first start the VPN image is built; this can take a few minutes and happens only once. To add the app to your desktop's application menu:

quickssh install-desktop
Note: The client looks for the server application (quicksshd) next to itself, then in PATH. Installing both into the same directory is the easiest.

Building from source

The two repositories must sit side by side; the shared code lives in the server repository.

quickssh/
├── quickssh-client/
└── quickssh-server/
cd quickssh-server && cargo build --release
cd ../quickssh-client && cargo build --release

To collect the outputs in one directory, put this file in the parent directory:

# quickssh/.cargo/config.toml
[build]
target-dir = "target"

As a single container (Docker image)

This is the way to run the server without any installation. It contains its own Docker engine; VPNs start inside it and don't touch the Docker of the host machine.

QUICKSSH_ADMIN_KEY="$(cat ~/.ssh/id_ed25519.pub)" docker compose up -d --build
PortFor
22 (2222 outside)Clients
8822Admin panel
42000–42019External access and database ports opened for users
Warning: The container runs --privileged because it runs Docker inside. Persistent data lives in the /data and /var/lib/docker volumes; back these volumes up.

Central server (for teams)

Install the server on a shared Linux machine, then add users:

quicksshd user-add admin --admin --secrets --key ~/admin.pub
quicksshd user-add alice --key ~/alice.pub --access group:Acme

Each command prints a temporary password for the user's first panel login. To run the admin panel as a system service:

sudo cp systemd/[email protected] /etc/systemd/system/
sudo systemctl enable --now quickssh-panel@quickssh

The panel speaks plain HTTP and is reachable only from the server itself; if you expose it to the network, put a TLS-terminating reverse proxy in front of it. Details: Central server.

Connecting the client to a central server

In the interface, enter the server's address under Settings → Central server, or from the command line:

quickssh server set [email protected] -i ~/.ssh/id_ed25519
quickssh server show

The command tries to connect before saving; a wrong address or key won't break your settings.

Updating

Install the two files from the new package over the old ones. Update the server and the client together. For the Docker image, docker compose up -d --build is enough; records stay in the volumes.