# gliderlabs/ssh

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/gliderlabs-ssh).**

4,145 stars · 499 forks · Go · BSD-3-Clause

## Links

- GitHub: https://github.com/gliderlabs/ssh
- Homepage: https://godoc.org/github.com/gliderlabs/ssh
- awesome-repositories: https://awesome-repositories.com/repository/gliderlabs-ssh.md

## Topics

`golang` `golang-package` `ssh` `ssh-server`

## Description

This project is a Go library and framework for implementing the SSH protocol. It provides a toolkit for building custom SSH servers, managing encrypted connections, and handling remote command execution.

The implementation focuses on flexible session management through callback-based handling and a pluggable authentication system that supports passwords, public keys, and certificates. It includes mechanisms for secure network tunneling, including local and reverse port forwarding for TCP and Unix domain socket traffic.

The library covers a broad range of protocol capabilities, including cryptographic algorithm configuration, SSH agent forwarding, and server identity management via PEM files. It also handles session lifecycle management, request multiplexing, and the deserialization of public and private keys.

## Tags

### Networking & Communication

- [SSH Protocol Implementations](https://awesome-repositories.com/f/networking-communication/ssh-protocol-implementations.md) — Provides a complete pure-Go implementation of the SSH protocol stack for building custom servers. ([source](https://godoc.org/golang.org/x/crypto/ssh))
- [General Purpose Frameworks](https://awesome-repositories.com/f/networking-communication/ssh-server-frameworks/git-ssh-servers/application-dashboard-ssh-servers/general-purpose-frameworks.md) — Provides a comprehensive framework for developing specialized SSH servers in Go for various secure remote access applications.
- [Connection Multiplexing](https://awesome-repositories.com/f/networking-communication/rpc-servers/connection-multiplexing.md) — Implements connection multiplexing to handle multiple independent data streams and requests over a single encrypted transport.
- [SSH Frameworks](https://awesome-repositories.com/f/networking-communication/ssh-frameworks.md) — Ships a comprehensive set of tools for managing SSH handshakes, public key authentication, and cryptographic configurations.
- [SSH Session Management](https://awesome-repositories.com/f/networking-communication/ssh-session-management.md) — Manages the full lifecycle of SSH sessions, including request authorization and PTY allocation. ([source](https://godoc.org/github.com/gliderlabs/ssh))
- [TCP Connection Forwarding](https://awesome-repositories.com/f/networking-communication/network-port-forwarding/local-port-forwarding/tcp-connection-forwarding.md) — Implements TCP connection forwarding by piping data between local and remote sockets through an encrypted tunnel.
- [Out-of-Band Request Handling](https://awesome-repositories.com/f/networking-communication/out-of-band-request-handling.md) — Processes global and channel-specific requests independently of the main data stream to manage session state. ([source](https://godoc.org/golang.org/x/crypto/ssh))
- [TCP Tunneling](https://awesome-repositories.com/f/networking-communication/tcp-protocol-implementations/tcp-tunneling.md) — Implements a mechanism for routing network traffic through encrypted tunnels using local and reverse port forwarding.
- [Traffic Routing](https://awesome-repositories.com/f/networking-communication/traffic-routing.md) — Proxies network traffic using local and reverse port forwarding mechanisms to direct traffic to specific services. ([source](https://godoc.org/github.com/gliderlabs/ssh))
- [SSH Tunneling Forwarders](https://awesome-repositories.com/f/networking-communication/unix-domain-socket-support/tunneled-unix-socket-forwarding/ssh-tunneling-forwarders.md) — Implements tunnels for routing TCP or Unix domain socket traffic through encrypted SSH connections to remote hosts.

### DevOps & Infrastructure

- [Remote Command Execution](https://awesome-repositories.com/f/devops-infrastructure/remote-command-execution.md) — Enables the execution of programs or shells on remote hosts with full input and output capture. ([source](https://godoc.org/golang.org/x/crypto/ssh))

### Security & Cryptography

- [Handshake Key Negotiations](https://awesome-repositories.com/f/security-cryptography/encryption-key-management/handshake-key-negotiations.md) — Handles the negotiation of compatible encryption and key exchange methods during the initial connection handshake.
- [SSH and Telnet Server Implementations](https://awesome-repositories.com/f/security-cryptography/ssh-and-telnet-clients/ssh-and-telnet-server-implementations.md) — Provides a complete server-side implementation of the SSHv2 protocol for hosting secure remote access services.
- [SSH Authentication](https://awesome-repositories.com/f/security-cryptography/ssh-authentication.md) — Implements multiple methods for authorizing SSH sessions, including passwords, public keys, and certificates.
- [User Authentication Systems](https://awesome-repositories.com/f/security-cryptography/user-authentication-systems.md) — Implements systems for validating user identities using passwords or public keys to control server access. ([source](https://godoc.org/github.com/gliderlabs/ssh))
- [Cryptographic Algorithm Interfaces](https://awesome-repositories.com/f/security-cryptography/cryptographic-algorithm-interfaces.md) — Allows restricting the set of key exchanges and ciphers used during the handshake for security compliance. ([source](https://godoc.org/golang.org/x/crypto/ssh))
- [Private Key Parsing](https://awesome-repositories.com/f/security-cryptography/private-key-parsing.md) — Includes utilities for parsing and deserializing cryptographic keys and certificates from PEM formatted files.
- [SSH Agent Forwarding](https://awesome-repositories.com/f/security-cryptography/ssh-agent-forwarding.md) — Provides a mechanism to forward authentication agent connections through a session using temporary sockets.
- [SSH Certificate Management](https://awesome-repositories.com/f/security-cryptography/ssh-certificate-management.md) — Provides signing and verification of SSH certificates including revocation checks for users and hosts. ([source](https://godoc.org/golang.org/x/crypto/ssh))
- [SSH Key Parsers](https://awesome-repositories.com/f/security-cryptography/ssh-key-parsers.md) — Includes utilities for decoding and parsing SSH public and private keys from PEM and host files. ([source](https://godoc.org/golang.org/x/crypto/ssh))

### Data & Databases

- [Authentication Provider Architectures](https://awesome-repositories.com/f/data-databases/data-compression-algorithms/pluggable-architectures/authentication-provider-architectures.md) — Provides a pluggable authentication architecture for swapping password or public key providers via a common interface.

### Software Engineering & Architecture

- [Session Handler Callbacks](https://awesome-repositories.com/f/software-engineering-architecture/session-handler-callbacks.md) — Provides a callback-based system to route incoming SSH connections to custom handler functions for session logic.

### System Administration & Monitoring

- [Host Identity Configuration](https://awesome-repositories.com/f/system-administration-monitoring/server-identity-management/host-identity-configuration.md) — Enables setting the server host identity by loading digital signatures from PEM files. ([source](https://godoc.org/github.com/gliderlabs/ssh))

### Part of an Awesome List

- [Networking Libraries](https://awesome-repositories.com/f/awesome-lists/devops/networking-libraries.md) — High-level API for creating SSH servers.
- [Networking](https://awesome-repositories.com/f/awesome-lists/devtools/networking.md) — API for building SSH servers.
- [Networking Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/networking-libraries.md) — High-level API for creating SSH servers.
