How does the SSH connection work?

Hi,

I’m trying to run my own gameserver over SSH and I can’t find good resources on the topic, so I figured I would ask the one community I know about that does it well.

Can anyone describe how CDO serves games over SSH? The list of things I know I don’t understand is as follows:

  • How does the user authenticate with the server? Do they only need to provide their public key?

  • How does data get served back to the user in curses alternate-screen mode? Do you just force the user’s connection to run an instance of crawl, and ssh handles the rest?

  • How are multiple simultaneous connections handled? I’ve gotten as far as understanding I need to have my Docker container connected to the outside world on a port != 22, but if multiple users need to connect, can they all do that over the same port, or is there another step involved?

Apologies if this doesn’t really fit the subforum, I’m just at my wits’ end with trying to get information on how to do this properly.

1 Thank

dgamelaunch manages accounts and allows users to play games through ssh. See also https://github.com/crawl/dgamelaunch-config

Related: Checkout the README here https://github.com/crawl/crawl/tree/master/crawl-ref/source/webserver to get a webtiles server running.

I’ve only run the webtiles server for testing purposes so that’s all I know about it.