3d180c0376
Prep for evaluating SSHPolicy earlier to decide whether certs are required, which requires knowing the target SSH user. Updates #3802 Change-Id: I2753ec8069e7f19c9121300d0fb0813c1c627c36 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com> |
||
---|---|---|
.. | ||
agent.go | ||
conn.go | ||
context_test.go | ||
context.go | ||
doc.go | ||
example_test.go | ||
LICENSE | ||
options_test.go | ||
options.go | ||
README.md | ||
server_test.go | ||
server.go | ||
session_test.go | ||
session.go | ||
ssh_test.go | ||
ssh.go | ||
tcpip_test.go | ||
tcpip.go | ||
util.go | ||
wrap.go |
gliderlabs/ssh
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 (
"tailscale.com/tempfork/gliderlabs/ssh"
"io"
"log"
)
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).
Examples
A bunch of great examples are in the _examples
directory.
Usage
Contributing
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.
Roadmap
- Non-session channel handlers
- Cleanup callback API
- 1.0 release
- High-level client?
Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]