Clone or download
jbarnette and belak Wait for connections to finish when shutting down
PR #74 introduced a WaitGroup for listeners, but it doesn't wait for
open connections before closing the server. This patch waits until all
conns are closed before returning from Shutdown.
Latest commit d3a6756 May 7, 2018



GoDoc CircleCI Go Report Card OpenCollective Slack Email Updates

The Glider Labs SSH server package is dope. —@bradfitz, Go team member

This Go package wraps the crypto/ssh package with a higher-level API for building SSH servers. The goal of the API was to make it as simple as using net/http, so the API is very similar:

 package main

 import (

 func main() {
     ssh.Handle(func(s ssh.Session) {
         io.WriteString(s, "Hello world\n")

     log.Fatal(ssh.ListenAndServe(":2222", nil))

This package was built by @progrium after working on nearly a dozen projects at Glider Labs using SSH and collaborating with @shazow (known for ssh-chat).


A bunch of great examples are in the _examples directory.


See GoDoc reference.


Pull requests are welcome! However, since this project is very much about API design, please submit API changes as issues to discuss before submitting PRs.

Also, you can join our Slack to discuss as well.


  • Non-session channel handlers
  • Cleanup callback API
  • 1.0 release
  • High-level client?


Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]