Skip to content
Branch: master
Clone or download
Latest commit 3e37ebf Apr 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
chat chat/message: Handle nil theme (mono) Mar 24, 2019
cmd/ssh-chat main: --admin and --whitelist: Skip non-key lines Mar 15, 2019
internal chat, internal/humantime: Tweak departure message Mar 17, 2019
set /ban query support (#286) Dec 25, 2018
sshd sshd/terminal: Undo emoji offset bugfix Apr 21, 2019
.gitignore vendor: Switch to using `go dep` Oct 12, 2017
.travis.yml travisci: Remove explicit dep fetch (#287) Dec 25, 2018
CONTRIBUTING.md Adding a contribituion file and issue template (#248) Oct 3, 2017
Gopkg.lock /uptime and /whois relative timestamps made more precise Jan 19, 2018
Gopkg.toml vendor: Switch to using `go dep` Oct 12, 2017
LICENSE LICENSE, todo. Dec 13, 2014
Makefile sshchat: Fix tests to use new rendering format. Mar 21, 2019
NOTICE legal: Put sshd/terminal notice in root Mar 18, 2019
README.md Update README to match current --help Mar 29, 2019
auth.go Better comments Feb 24, 2019
auth_test.go /ban query support (#286) Dec 25, 2018
build_release Windows support (fixed #217) Sep 15, 2016
go.mod go mod tidy Mar 21, 2019
go.sum go mod tidy Mar 21, 2019
godoc.go Better comments Feb 24, 2019
host.go sshchat: term.Write on empty lines to fix prompt reset bug Mar 29, 2019
host_test.go sshchat: Fix tests to use new rendering format. Mar 21, 2019
identity.go Better comments Feb 24, 2019
issue_template.md Adding a contribituion file and issue template (#248) Oct 3, 2017
logger.go Better comments Feb 24, 2019
motd.txt Fix motd, invalid fingerprint, no auth whitelist. Dec 17, 2014

README.md

Build Status GoDoc Downloads Bountysource

ssh-chat

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

Demo

Join the party:

$ ssh chat.shazow.net

The server's RSA key fingerprint is MD5:e5:d5:d1:75:90:38:42:f6:c7:03:d7:d0:56:7d:6a:db or SHA256:HQDLlZsXL3t0lV5CHM0OXeZ5O6PcfHuzkS8cRbbTLBI. 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.

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

Quick Start

Usage:
  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: 0.0.0.0:2022)
      --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 github.com/shazow/ssh-chat/... 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.

License

This project is licensed under the MIT open source license.

You can’t perform that action at this time.