Git over SSH - Access Guide

Connect to git.asobisoft.org over SSH using a WebSocket tunnel.

1. Overview

This Forgejo instance runs on an internal network and is reached from the internet through a reverse proxy that only accepts HTTPS traffic, so SSH cannot connect directly to port 22.

SSH traffic is therefore carried inside a WebSocket connection to wss://git.asobisoft.org/ssh-tunnel using a small open-source tool called websocat. Once installed and configured, you clone, pull and push exactly as usual.

2. Install websocat

websocat ships as a standalone static binary. Download the latest release for your platform from the official releases page:

  • Linux — pick linux_amd64 (x86_64) or linux_aarch64 (ARM64), extract the websocat binary and put it somewhere on your PATH (for example /usr/local/bin).
  • macOS — brew install websocat.
  • Windows — download the windows_amd64 zip, extract websocat.exe and put it in a folder on your PATH (or install it with Scoop: scoop install websocat).

Verify the installation:

websocat --version

3. Add your SSH key

Your public SSH key must be registered on your account first. Without it, the test in step 5 fails with:

[email protected]: Permission denied (publickey).

Add your key at https://git.asobisoft.org/user/settings/keys, or follow the official Forgejo documentation on SSH keys.

4. Configure SSH

Add the following block to your SSH configuration file: ~/.ssh/config on Linux and macOS, or C:\Users\<you>\.ssh\config on Windows.

Host git.asobisoft.org
    User git
    ProxyCommand websocat --binary wss://git.asobisoft.org/ssh-tunnel

Make sure websocat is on your PATH so SSH can find it (on Windows, websocat.exe must be resolvable). If you prefer, use the full path to the binary instead:

ProxyCommand /usr/local/bin/websocat --binary wss://git.asobisoft.org/ssh-tunnel

5. Test & use

Verify the tunnel and your SSH key work:

ssh -T [email protected]

You should see a message like:

Hi there, <username>! You've successfully authenticated with the key named <key-name>, but Forgejo does not provide shell access.
If this is unexpected, please log in with password and setup Forgejo under another user.

If asked to confirm the host key on the first connection, answer yes. Then clone any repository with its SSH URL:

git clone ssh://[email protected]/<owner>/<repo>.git

The SSH URL shown on each repository page in Forgejo works as well. After the initial setup, clone, pull and push work as usual — no extra commands needed.