|
|
2 tahun lalu | |
|---|---|---|
| .. | ||
| LICENSE | 5a44f9f5b5 tempfork: temporarily fork gliderlabs/ssh and x/crypto/ssh | 4 tahun lalu |
| README.md | 5a44f9f5b5 tempfork: temporarily fork gliderlabs/ssh and x/crypto/ssh | 4 tahun lalu |
| agent.go | f0347e841f refactor: move from io/ioutil to io and os packages | 3 tahun lalu |
| conn.go | 5a44f9f5b5 tempfork: temporarily fork gliderlabs/ssh and x/crypto/ssh | 4 tahun lalu |
| context.go | 4de1601ef4 ssh/tailssh: add support for sending multiple banners | 3 tahun lalu |
| context_test.go | da8def8e13 all: remove old +build tags | 3 tahun lalu |
| doc.go | 116f55ff66 all: gofmt for Go 1.19 | 3 tahun lalu |
| example_test.go | f0347e841f refactor: move from io/ioutil to io and os packages | 3 tahun lalu |
| options.go | f0347e841f refactor: move from io/ioutil to io and os packages | 3 tahun lalu |
| options_test.go | da8def8e13 all: remove old +build tags | 3 tahun lalu |
| server.go | 4de1601ef4 ssh/tailssh: add support for sending multiple banners | 3 tahun lalu |
| server_test.go | da8def8e13 all: remove old +build tags | 3 tahun lalu |
| session.go | 5a44f9f5b5 tempfork: temporarily fork gliderlabs/ssh and x/crypto/ssh | 4 tahun lalu |
| session_test.go | da8def8e13 all: remove old +build tags | 3 tahun lalu |
| ssh.go | f16b77de5d ssh/tailssh: do the full auth flow during ssh auth | 3 tahun lalu |
| ssh_test.go | 5a44f9f5b5 tempfork: temporarily fork gliderlabs/ssh and x/crypto/ssh | 4 tahun lalu |
| tcpip.go | 5a44f9f5b5 tempfork: temporarily fork gliderlabs/ssh and x/crypto/ssh | 4 tahun lalu |
| tcpip_test.go | e8551d6b40 all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} | 2 tahun lalu |
| util.go | 5a44f9f5b5 tempfork: temporarily fork gliderlabs/ssh and x/crypto/ssh | 4 tahun lalu |
| wrap.go | 5a44f9f5b5 tempfork: temporarily fork gliderlabs/ssh and x/crypto/ssh | 4 tahun lalu |
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).
A bunch of great examples are in the _examples directory.
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.
Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]