2014-12-15 03:51:51 +01:00
[![Build Status ](https://travis-ci.org/shazow/ssh-chat.svg?branch=master )](https://travis-ci.org/shazow/ssh-chat)
2014-12-10 03:22:46 +01:00
# ssh-chat
2014-12-10 02:21:52 +01:00
2014-12-12 07:19:04 +01:00
Custom SSH server written in Go. Instead of a shell, you get a chat prompt.
2014-12-13 02:55:19 +01:00
## Demo
Join the party:
```
$ ssh chat.shazow.net
```
2014-12-14 23:25:01 +01:00
The server's RSA key fingerprint is `e5:d5:d1:75:90:38:42:f6:c7:03:d7:d0:56:7d:6a:db` . If you see something different, you might be [MITM ](https://en.wikipedia.org/wiki/Man-in-the-middle_attack )'d.
(Apologies if the server is down, try again shortly.)
2014-12-13 02:55:19 +01:00
2014-12-12 07:19:04 +01:00
## Quick Start
```
Usage:
ssh-chat [OPTIONS]
Application Options:
2014-12-15 06:03:11 +01:00
-v, --verbose Show verbose logging.
-i, --identity= Private key to identify server with. (~/.ssh/id_rsa)
--bind= Host and port to listen on. (0.0.0.0:22)
--admin= Fingerprint of pubkey to mark as admin.
--whitelist= Optional file of pubkey fingerprints that are allowed to connect
--motd= Message of the Day file (optional)
--pprof= enable http server for pprof
2014-12-12 07:19:04 +01:00
Help Options:
2014-12-15 06:03:11 +01:00
-h, --help Show this help message
2014-12-12 07:19:04 +01:00
```
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 ":2022" --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).
2014-12-15 02:46:05 +01:00
## Deploying with Docker
2014-12-13 06:39:46 +01:00
You can run ssh-chat using a Docker image without manually installing go-lang:
```
$ docker pull alvin/ssh-chat
$ docker run -d -p 0.0.0.0:(your host machine port):2022 --name ssh-chat alvin/ssh-chat
```
2014-12-15 02:45:33 +01:00
See notes in the header of our Dockerfile for details on building your own image.
2014-12-13 06:39:46 +01:00
2014-12-12 07:19:04 +01:00
## Developing
If you're developing on this repo, there is a handy Makefile that should set
things up with `make run` .
2014-12-10 03:22:46 +01:00
2014-12-15 04:16:56 +01:00
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 ](http://golang.org/pkg/net/http/pprof/ ) for more information about `pprof` .
2014-12-10 03:22:46 +01:00
2014-12-13 02:52:05 +01:00
## License
MIT