[antics.gg] 0:ssh* "ssh.antics.gg" port 22 · ED25519

NAME

sideout — survival pong for eight, played over ssh

SYNOPSIS

$ ssh ssh.antics.gg

Any username. No password, no account, nothing to install. The name you type is your name in the arena and on the board, so pick a good one.

Windows: Windows Terminal with the built-in OpenSSH client. Everything else already has ssh.

SIDE OUT · ROOM 1 · LIVE 1:54 · 5 ALIVE · YOU ●● CATHODE ●● TRACE ●● BEAM ●● VECTOR ● YOU ●● ← → or mouse to move · q to quit
A real frame, 100×30 cells, produced by the same renderer that draws yours. Every point is one Braille dot. You are the bottom side, on two lives.

DESCRIPTION

SIDE OUT is Pong with eight sides. Every player owns one wall of an octagon and a paddle in front of it. A ball past your paddle costs a life. Two lives and your side is gone: the arena reshapes to seven sides, then six, and so on, until one side is standing.

Over ssh you play CLASSIC against whoever else is connected, with bots filling the octagon to eight bodies. Connect, land in the lobby, press Enter, play. A round runs about a minute and a half.

Being out is not spectating. The moment your side goes you get a crosshair and a cooldown, and you drop hazards into the arena for the survivors: a peg that deflects, a well that bends, a spinner that swats. Sabotage is how you keep playing.

Three rooms, eight seats each. When every seat is taken you queue, watch the busiest room, and get seated at the end of its round. Players who have sat the longest rotate out to the back of the queue, so the queue always moves.

There is a leaderboard. It is keyed by the name you typed, and anyone can type any name. It is an honour system. Treat it as one.

CONTROLS

or A D
move your paddle
mouse
move to steer; once you are out, hover to aim and click to drop
Enter
ready up in the lobby
q Esc Ctrl-C
quit; your terminal is put back the way it was

SECURITY

Should you ssh into a server you do not know? Fair question. Here is exactly what this one does, so you can decide rather than trust.

The game is the ssh server. One Node process, using the ssh2 library, owns port 22 under its own user inside a hardened systemd sandbox. There is no sshd on that port and no shell behind it. Nothing you type reaches a command line, because there is not one.

Ports 80 and 443 on the same host are Caddy, and its entire configuration is a redirect to this page. It serves nothing else.

What it answers to your client. A connection gets one session channel, a terminal, and the game. Everything else is refused:

sessionaccepted, one per connection
pty-req, window-changeaccepted, the game needs a terminal
shellaccepted, this starts the game
exec, subsystem, sftprejected
auth-agent-reqrejected, agent forwarding never happens, even with ForwardAgent yes in your config
x11-reqrejected
tcpip-forward, direct-tcpip, streamlocalrejected, no port forwarding in either direction
envrejected, your environment stays yours

Authentication is none. Every OpenSSH client tries the none method first, and this server accepts it, so your client never offers a key and the server never asks for one. Password and keyboard-interactive are refused outright.

What it writes to your terminal. Every frame is built from this fixed set of escape sequences and nothing else:

It never queries your terminal, never touches your clipboard or window title, and sends no DCS or APC sequences. On exit it reverses every mode it set, in the opposite order.

VERIFY

The host key is ED25519. It was generated once and is never regenerated, so your client pins it on first connect. The fingerprint is:

SHA256:8kHhB9JHHCPzSu4fDoDWm4VoTTKeKSjN4/7ITKwBq/Y

If your client shows anything else, do not accept it, and tell us.

Ask the server who it is before you connect. It identifies itself as sideout, not as OpenSSH:

$ nc -w 2 ssh.antics.gg 22 </dev/null
SSH-2.0-sideout

Watch the handshake. Without a terminal the server says so and hangs up, which makes this a two-second check: authentication completes with the none method, and no key is offered.

$ ssh -vT ssh.antics.gg 2>&1 | grep -E 'remote software|^Authenticated'
debug1: Remote protocol version 2.0, remote software version sideout
Authenticated to ssh.antics.gg ([35.174.19.33]:22) using "none".

Belt and braces. These flags turn off agent and X11 forwarding on your side, so what the server would answer stops mattering:

$ ssh -a -x ssh.antics.gg

LOGGING

One line when you connect: the name you typed, your IP address, your terminal size, and the room you were seated in. One line when you leave. Round results, by name, for the board. That is the whole log. It stays in the service journal on that box, and nothing inside the terminal reports to anyone.

This web page carries Google Analytics. The game does not.

REQUIREMENTS

terminal
at least 80×24. From 100 columns you also get side labels and the board
colours
256, which is every terminal made this decade
mouse
optional; xterm mouse reporting, which every terminal made this decade does
limits
4 connections per address, 10 per minute. Ten idle minutes and you are dropped, reconnect any time

SEE ALSO

The full game, with SURVIVAL, the big arenas, and your friends in the same room: