Skip to main content

Awesome SSH

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 - Transparent wrapper (ProxyCommand) that adds regex, aliases, gateways, includes, dynamic hostnames to SSH and ssh-config. Previously: advanced-ssh-config
  • storm - Manage your SSH like a boss.
  • ansible-ssh-config - Letting Ansible manage ssh_config.
  • ec2ssh - A ssh_config manager for AWS EC2.
  • ssh-config - 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 - simple, fun, and transparent SSH (& Telnet) Bastion Server
  • ssh2docker - SSH server to Docker containers.
  • ssh-proxy - Dockerized SSH bastion to proxy SSH connections to arbitrary containers.
  • whosthere - A SSH server that knows who you are. $ ssh whoami.filippo.io.
  • sshfront - Programmable SSH frontend.
  • ssh-chat - Chat over SSH.
  • sshcommand - Turn SSH into a thin client specifically for your app.
  • sshmuxd - sshmux frontend.
  • x84 - 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 - Modern SSH server for clusters and teams.
  • ShellHub - A SSH gateway for remotely accessing any Linux device behind firewall and NAT.

Network

  • Mosh - The mobile shell.
  • sshfs - Filesystem client based on the SSH File Transfer Protocol.
  • ngrok - Introspected tunnels to localhost.
  • localtunnel - Expose localhost servers to the Internet.
  • sshuttle - 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 - SSH/HTTP(S) multiplexer. Run a webserver and a sshd on the same port w/o changes.
  • switcher - Run SSH and HTTP(S) on the same port.
  • sslh - Applicative Protocol Multiplexer (i.e: SSH + HTTPS).
  • tund - SSH reverse tunnel daemon.
  • autossh - Automatically respawn SSH session after network interruption.
  • wssh - SSH to WebSockets Bridge.
  • docker-volume-sshfs - sshfs docker volume plugin.
  • quicssh - QUIC proxy for SSH
  • sshpiper - The missing reverse proxy for ssh scp.
  • sshhub - Web Service: access your SSH servers behind firewalls (ssh-teamviewer).

Multiplexers

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

SSH keys / Authentication

  • authy-ssh - Easy two-factor authentication for SSH servers.
  • github-auth - SSH key management for GitHub users.
  • cipherhub - 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 - A way to make sure your sshd port changes every 30 seconds.
  • github-keygen - Easy creation of secure SSH configuration for your GitHub account(s).
  • kr - Kr agent that route access request to the paired mobile phone where Kryptonite is installed.
  • ServerAuth - Automatically sync SSH access across servers
  • HIBA - Central management of access to a fleet of machines without pushing authorized_users files.

SSH agent

Tools

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

Automation

  • Ansible - App deployment, configuration management and orchestration over SSH.
  • rtop - 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 - 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 - HTML5-powered terminal emulator and SSH client.
  • KeyBox - 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 - Real-time GUI to monitor SSH connections and establish port forwardings.

Testing / Honeypots

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

Alternatives to SSH

  • GoTTY - Share your terminal as web application.
  • telnet - An unencrypted network protocol and an application used to connect to remote computers and issue commands.
  • ttyd - 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 - SFTP support for the go.crypto/ssh package.
    • go-sshkit - Toolkit for building SSH servers and clients in Go.
    • Socker - 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 - SSH2 client and server modules written in pure JavaScript for node.js.
  • Python
    • paramiko - Native Python SSHv2 protocol library.
  • Ruby
    • net-ssh - Pure Ruby implementation of an SSH (protocol 2) client.

Resources

Tutorials

Security

Documentation

Community

License

https://creativecommons.org/publicdomain/zero/1.0/

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

Contribute to this list: https://github.com/moul/awesome-ssh