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
| What | Why |
|---|---|
| Linux (x86_64) | The server runs only on Linux. The ready-made package needs glibc 2.30 or newer (Ubuntu 20.04+, Debian 11+). |
| Docker | VPNs and the remote desktop service run as containers. |
ssh, ssh-keygen | Connections use the system's OpenSSH. |
sftp, curl, tar | For 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
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
- In the client, Settings → Central server:
[email protected], port2222, and the private half of the public key above as the key. - The admin panel is at
http://127.0.0.1:8822. The admin's temporary panel password is written to the container log on first start:docker logs quickssh-server. - Set the time zone with
TZ:TZ=Europe/Istanbul docker compose up -d.
| Port | For |
|---|---|
| 22 (2222 outside) | Clients |
| 8822 | Admin panel |
| 42000–42019 | External access and database ports opened for users |
--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.