/awesome-ssh

:computer: A curated list of SSH resources.

Creative Commons Zero v1.0 UniversalCC0-1.0

Awesome SSH Awesome

A curated list of SSH apps, libraries and resources.

Inspired by the awesome list thing.

Please read the contribution guidelines if you want to contribute.

Check out my blog 🦄 or say hi on Twitter.

Table of Contents

Apps

.ssh/config

  • assh stars - Transparent wrapper (ProxyCommand) that adds regex, aliases, gateways, includes, dynamic hostnames to SSH and ssh-config. Previously: advanced-ssh-config
  • storm stars - Manage your SSH like a boss.
  • ansible-ssh-config stars - Letting Ansible manage ssh_config.
  • ec2ssh stars - A ssh_config manager for AWS EC2.
  • ssh-config stars - A tool to help manage your .ssh/config file.

Tools using the SSH protocol

  • scp - Secure remote file copy utility over SSH.
  • rsync - Fast incremental transfer utility that supports SSH.
  • sftp - File transfer protocol over SSH.
  • curl - Command line tool and library to transfer data (support sftp).

Servers

  • sshportal stars - simple, fun, and transparent SSH (& Telnet) Bastion Server
  • ssh2docker stars - SSH server to Docker containers.
  • ssh-proxy stars - Dockerized SSH bastion to proxy SSH connections to arbitrary containers.
  • whosthere stars - A SSH server that knows who you are. $ ssh whoami.filippo.io.
  • sshfront stars - Programmable SSH frontend.
  • ssh-chat stars - Chat over SSH.
  • sshcommand stars - Turn SSH into a thin client specifically for your app.
  • sshmuxd stars - sshmux frontend.
  • x84 stars - A python telnet/ssh server for modern UTF-8 and classic cp437 network virtual terminals. In spirit of classic software such as ami/x, teleguard, renegade, iniquity.
  • teleport stars - Modern SSH server for clusters and teams.
  • ShellHub stars - A SSH gateway for remotely accessing any Linux device behind firewall and NAT.

Network

  • Mosh - The mobile shell.
  • sshfs stars - Filesystem client based on the SSH File Transfer Protocol.
  • ngrok stars - Introspected tunnels to localhost.
  • localtunnel stars - Expose localhost servers to the Internet.
  • sshuttle stars - Transparent proxy server that works as a poor man's VPN. Forwards over ssh. Doesn't require admin. Works with Linux and MacOS. Supports DNS tunneling.
  • sshttp stars - SSH/HTTP(S) multiplexer. Run a webserver and a sshd on the same port w/o changes.
  • switcher stars - Run SSH and HTTP(S) on the same port.
  • sslh stars - Applicative Protocol Multiplexer (i.e: SSH + HTTPS).
  • tund stars - SSH reverse tunnel daemon.
  • autossh - Automatically respawn SSH session after network interruption.
  • wssh stars - SSH to WebSockets Bridge.
  • docker-volume-sshfs stars - sshfs docker volume plugin.
  • quicssh stars - QUIC proxy for SSH
  • sshpiper stars - The missing reverse proxy for ssh scp.
  • sshhub - Web Service: access your SSH servers behind firewalls (ssh-teamviewer).

Multiplexers

  • tmux - Terminal multiplexer.
  • clusterssh stars - Cluster admin via SSH.
  • tmux-cssh stars - tmux with a ClusterSSH-like behavior.
  • tm stars - tmux manager / helper.
  • i2cssh stars - csshX like SSH tool for iTerm2.
  • ClusterSSH - Controls a number of xterm windows via a single graphical console.

SSH keys / Authentication

  • authy-ssh stars - Easy two-factor authentication for SSH servers.
  • github-auth stars - SSH key management for GitHub users.
  • cipherhub stars - Encrypt messages based on SSH public keys with easy import from GitHub.
  • Slack notifications (archived version) - Guide to setup Slack notifications (can be modified for other services).
  • totp-ssh-fluxer stars - A way to make sure your sshd port changes every 30 seconds.
  • github-keygen stars - Easy creation of secure SSH configuration for your GitHub account(s).
  • kr stars - Kr agent that route access request to the paired mobile phone where Kryptonite is installed.
  • ServerAuth - Automatically sync SSH access across servers
  • HIBA stars - Central management of access to a fleet of machines without pushing authorized_users files.

SSH agent

Tools

  • xxh stars - Bring your favorite shell wherever you go through the ssh.
  • sshrc stars - Bring your .bashrc, .vimrc, etc. with you when you ssh.
  • kyrat stars - SSH wrapper script that brings your dotfiles always with you on Linux and OSX.
  • ssh-vault stars - encrypt/decrypt files using ssh keys
  • ssh-ping stars - check if host is reachable using ssh_config
  • SSHPry v2 stars - Spy & Control os SSH Connected client's TTY
  • redial stars - Terminal Based SSH Session Manager for Unix Systems

Automation

  • Ansible stars - App deployment, configuration management and orchestration over SSH.
  • rtop stars - Interactive, remote system monitoring tool based on SSH.
  • DSH - Dancer's shell / distributed shell - Wrapper for executing multiple remote shell commands from one command line.
  • parallel-ssh stars - Provides parallel versions of OpenSSH and related tools.
  • SSH Power Tool - Execute commands and upload files to many servers simultaneously without using pre-shared keys.

Web

  • Secure Shell chrome extension
  • GateOne stars - HTML5-powered terminal emulator and SSH client.
  • KeyBox stars - Web-based SSH console that centrally manages administrative access to systems.
  • Apache Guacamole - Apache Guacamole is a HTML5 based clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.
  • SSHmon stars - Real-time GUI to monitor SSH connections and establish port forwardings.

Testing / Honeypots

  • ssh-hammer stars - SSH load testing tool.
  • kippo stars - SSH Honeypot.
  • cowrie stars - SSH Honeypot (based on kippo).
  • sshmitm - SSH monkey-in-the-middle.
  • ssh-audit stars - A tool for SSH server auditing.
  • sshesame stars - A fake SSH server that lets everyone in and logs their activity.

Alternatives to SSH

  • GoTTY stars - Share your terminal as web application.
  • telnet - An unencrypted network protocol and an application used to connect to remote computers and issue commands.
  • ttyd stars - Share your terminal over the web.
  • rsh - An unencrypted network protocol and application used to connect to remote computers and issue commands.

Libraries

  • C/C++
  • Golang
    • crypto/ssh - Built-in SSH client and server library.
    • sftp stars - SFTP support for the go.crypto/ssh package.
    • go-sshkit stars - Toolkit for building SSH servers and clients in Go.
    • Socker stars - Library for Go to simplify the use of SSH.
    • go-sshkeys - Golang SSH Keys manipulation library
  • Java
    • jsch - Pure java, BSD licensed, SSH2 client library.
  • Javascript/Node.js
    • ssh2 stars - SSH2 client and server modules written in pure JavaScript for node.js.
  • Python
    • paramiko stars - Native Python SSHv2 protocol library.
  • Ruby
    • net-ssh stars - Pure Ruby implementation of an SSH (protocol 2) client.

Resources

Tutorials

Security

Documentation

Community

License

CC0

To the extent possible under law, Manfred Touron has waived all copyright and related or neighboring rights to this work.