How do public ssh servers like git@github.com automatically reject connections and send a message?

Viewed 17

When I ssh to git@github.com, I get a message that looks like this:

Hi <my username>! You've successfully authenticated, but GitHub does not provide shell access.

The connection is then closed. I understand this is intentional behavior, but how do they do it? Is there a config option in sshd_config? Is it a different or proprietary package to manage ssh connections? How do they change the message to include the username?

I have no idea what to look up to find these answers. Any searches involving TTY allocation seem to only return troubleshooting for servers that shouldn't be doing that.

1 Answers

It's either that the user shell is set to /bin/false (or something else that does nothing) and there is a sshd "banner" or "motd" (message of the day) that has that message,

or that the user shell is set to a program that emits that message and exits.

Related