diff --git a/Makefile b/Makefile index fd43d6b..2850b22 100644 --- a/Makefile +++ b/Makefile @@ -20,3 +20,6 @@ $(KEY): run: $(BINARY) $(KEY) ./$(BINARY) -i $(KEY) -b ":$(PORT)" -vv + +test: + go test . diff --git a/README.md b/README.md index abee77e..4b62e0d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,38 @@ # ssh-chat -Coming real soon. +Custom SSH server written in Go. Instead of a shell, you get a chat prompt. + + +## Quick Start + +``` +Usage: + ssh-chat [OPTIONS] + +Application Options: + -v, --verbose Show verbose logging. + -b, --bind= Host and port to listen on. (0.0.0.0:22) + -i, --identity= Private key to identify server with. (~/.ssh/id_rsa) + +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 ":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). + + +## Developing + +If you're developing on this repo, there is a handy Makefile that should set +things up with `make run`. ## TODO: @@ -17,3 +49,9 @@ Coming real soon. * [x] /nick * [ ] pubkey fingerprint * [x] truncate usernames +* [x] Some tests. +* [ ] More tests. +* [ ] Even more tests. +* [ ] Lots of refactoring + * [ ] Pull out the chat-related stuff into isolation from the ssh serving + stuff diff --git a/server.go b/server.go index 702296b..e3b7a06 100644 --- a/server.go +++ b/server.go @@ -191,7 +191,7 @@ func (s *Server) Start(laddr string) error { return } - logger.Infof("Connection from: %s, %s, %s", sshConn.RemoteAddr(), sshConn.User(), sshConn.ClientVersion()) + logger.Infof("Connection #%d from: %s, %s, %s", s.count+1, sshConn.RemoteAddr(), sshConn.User(), sshConn.ClientVersion()) go ssh.DiscardRequests(requests)