https://github.com/gliderlabs/ssh

golang golang-package ssh ssh-server

Last synced: about 1 month ago

Repository metadata:

Easy SSH servers in Golang


Owner metadata:


Committers metadata

Last synced: about 2 months ago

Total Commits: 104
Total Committers: 44
Avg Commits per committer: 2.364
Development Distribution Score (DDS): 0.75

Commits in past year: 5
Committers in past year: 4
Avg Commits per committer in past year: 1.25
Development Distribution Score (DDS) in past year: 0.6

Name Email Commits
Kaleb Elwert b****k@c****o 26
Jeff Lindsay p****m@g****m 19
hloeffler h****r 9
Carlos Alexandro Becker c****0 3
Aidan Steele a****e@g****u 2
Luis Gustavo S. Barreto g****o@o****r 2
Luis Gustavo S. Barreto g****o@g****m 2
Mahmood Ali m****d@c****m 2
Manfred Touron m@4****m 2
Matt Aitchison M****t@l****m 2
Steven Murr s****r@g****m 2
Pia Mancini p****i@g****m 1
dependabot[bot] 4****] 1
meislerj m****j 1
Alan Yee a****e 1
Anmol Sethi n****r 1
Fredrik Forsmo f****e 1
Jose Diaz-Gonzalez e****l@j****m 1
John Barnette j****n@j****m 1
Hiram Chirino h****m@h****m 1
Ayman Bagabas a****s@g****m 1
Andrew Thornton a****7@c****t 1
Adriano Sela Aviles a****s@g****m 1
Kaleb Elwert k****b@c****o 1
Marc Fielding m****g@g****m 1
Mester m****3@l****g 1
Michael Borkenstein m****n@c****m 1
Murilo Santana m****o@g****m 1
Philipp C. Heckel p****l@g****m 1
Philipp Lehmann p****n@m****m 1
and 14 more...

Issue and Pull Request metadata

Last synced: about 1 month ago


Package metadata

go: github.com/gliderlabs/ssh

Package ssh 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. You should be able to build any SSH server using only this package, which wraps relevant types and some functions from crypto/ssh. However, you still need to use crypto/ssh for building SSH clients. ListenAndServe starts an SSH server with a given address, handler, and options. The handler is usually nil, which means to use DefaultHandler. Handle sets DefaultHandler: If you don't specify a host key, it will generate one every time. This is convenient except you'll have to deal with clients being confused that the host key is different. It's a better idea to generate or point to an existing key on your system: Although all options have functional option helpers, another way to control the server's behavior is by creating a custom Server: This package automatically handles basic SSH requests like setting environment variables, requesting PTY, and changing window size. These requests are processed, responded to, and any relevant state is updated. This state is then exposed to you via the Session interface. The one big feature missing from the Session abstraction is signals. This was started, but not completed. Pull Requests welcome!

  • Homepage: https://github.com/gliderlabs/ssh
  • Documentation: https://pkg.go.dev/github.com/gliderlabs/ssh#section-documentation
  • Licenses: BSD-3-Clause
  • Latest release: v0.3.6 (published about 1 year ago)
  • Last Synced: 2024-11-11T02:41:15.432Z (about 1 month ago)
  • Versions: 16
  • Dependent Packages: 5,119
  • Dependent Repositories: 26,795
  • Docker Downloads: 369,153,040
  • Rankings:
    • Dependent repos count: 0.037%
    • Dependent packages count: 0.038%
    • Docker downloads count: 0.184%
    • Average: 0.592%
    • Stargazers count: 1.248%
    • Forks count: 1.453%

Dependencies

_examples/ssh-docker/Dockerfile docker
  • alpine latest build
go.mod go
  • github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be
  • golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d
  • golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b
  • golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64
  • golang.org/x/term v0.0.0-20220722155259-a9ba230a4035
go.sum go
  • github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be
  • golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e
  • golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d
  • golang.org/x/net v0.0.0-20210226172049-e18ecbb05110
  • golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2
  • golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b
  • golang.org/x/sys v0.0.0-20201119102817-f84b799fce68
  • golang.org/x/sys v0.0.0-20210423082822-04245dca01da
  • golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1
  • golang.org/x/sys v0.0.0-20210616094352-59db8d763f22
  • golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10
  • golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64
  • golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1
  • golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
  • golang.org/x/term v0.0.0-20220722155259-a9ba230a4035
  • golang.org/x/text v0.3.3
  • golang.org/x/text v0.3.6
  • golang.org/x/text v0.3.7
  • golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e