You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Andrey Petrov fb73ace458
Merge pull request #385 from sytranvn/build-apple-silocon
21 hours ago
.github Update 2 months ago
chat chat: Add /mute command for op 7 days ago
cmd/ssh-chat cmd/ssh-chat: Use x/term instead of howeyc/gopass, update prompt 4 weeks ago
internal chat, internal/humantime: Tweak departure message 2 years ago
set set: Add Interface, ZeroValue helper 9 months ago
sshd sshd, chat/message: Add more debug logging for close failures 2 weeks ago
.gitignore vendor: Switch to using `go dep` 4 years ago
.travis.yml travisci: Remove explicit dep fetch (#287) 2 years ago Update 9 months ago Adding a contribituion file and issue template (#248) 4 years ago
Dockerfile Add Dockerfile and docker-compose.yml 6 months ago
Gopkg.lock /uptime and /whois relative timestamps made more precise 3 years ago
Gopkg.toml vendor: Switch to using `go dep` 4 years ago
LICENSE LICENSE, todo. 6 years ago
Makefile Add build script for apple silicon 2 days ago
NOTICE legal: Put sshd/terminal notice in root 2 years ago README: Add CoC link 9 months ago
auth.go Better comments 2 years ago
auth_test.go /ban query support (#286) 2 years ago
build_release Windows support (fixed #217) 5 years ago
docker-compose.yml Add Dockerfile and docker-compose.yml 6 months ago
go.mod main: Update host_test.go to pass vet, use errgroup 4 weeks ago
go.sum main: Update host_test.go to pass vet, use errgroup 4 weeks ago
godoc.go Better comments 2 years ago
host.go host: Fix /msg vs /reply message formatting 2 weeks ago
host_test.go main: Update host_test.go to pass vet, use errgroup 4 weeks ago
identity.go /away: Fix output for admin whois 7 days ago
logger.go Better comments 2 years ago
motd.txt /motd: Add reload functionality when msg is @ 9 months ago

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 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

  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.