by shazow

shazow / ssh-chat

Chat over SSH.

4.1K Stars 334 Forks Last release: 3 months ago (v1.10) MIT License 531 Commits 14 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Build Status GoDoc Downloads Bountysource


Custom SSH server written in Go. Instead of a shell, you get a chat prompt.


Join the party:

$ ssh

Please abide by our project's Code of Conduct while participating in chat.

The server's RSA key fingerprint is

. If you see something different, you might be MITM'd.

(Apologies if the server is down, try again shortly.)

Downloading a release

Recent releases include builds for MacOS (darwin/amd64) and Linux (386, amd64, and ARM6 for your RaspberryPi).

Grab the latest binary release here.

Play around with it. Additional deploy examples are here.

Compiling / Developing

Most people just want the latest binary release. If you're sure you want to compile it from source, read on:

You can compile ssh-chat by using

make build
. The resulting binary is portable and can be run on any system with a similar OS and CPU arch. Go 1.8 or higher is required to compile.

If you're developing on this repo, there is a handy Makefile that should set things up with

make run


make debug
runs the server with an http
server. This allows you to open http://localhost:6060/debug/pprof/ and view profiling data. See net/http/pprof for more information about

Quick Start

  ssh-chat [OPTIONS]

Application Options: -v, --verbose Show verbose logging. --version Print version and exit. -i, --identity= Private key to identify server with. (default: ~/.ssh/id_rsa) --bind= Host and port to listen on. (default: --admin= File of public keys who are admins. --whitelist= Optional file of public keys who are allowed to connect. --motd= Optional Message of the Day file. --log= Write chat log to this file. --pprof= Enable pprof http server for profiling.

Help Options: -h, --help Show this help message

After doing

go get
on this repo, you should be able to run a command like:
$ ssh-chat --verbose --bind ":22" --identity ~/.ssh/id_dsa

To bind on port 22, you'll need to make sure it's free (move any other ssh daemons to another port) and run ssh-chat as root (or with sudo).

Frequently Asked Questions

The FAQs can be found on the project's Wiki page. Feel free to submit more questions to be answered and added to the page.



We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.