A standalone SSH server that creates or joins Docker containers, providing secure shell access with dynamic configuration.
ssh2docker is a standalone SSH server designed to provide secure shell access directly into Docker containers. It acts as a gateway, allowing users to SSH into a host and be automatically placed into a new or existing Docker container based on configuration. This solves the problem of managing secure, isolated shell access for multiple users or services within a Dockerized environment without manual container entry.
DevOps engineers, system administrators, and developers managing Docker-based infrastructure who need to provide controlled SSH access to containers for debugging, maintenance, or operational tasks.
Developers choose ssh2docker for its simplicity and security—it leverages standard SSH for authentication and seamlessly integrates with Docker, eliminating the need for complex setups. Its unique selling point is the ability to dynamically create or join containers per SSH session with extensive configuration options, making it more flexible than basic Docker exec approaches.
:whale: standalone SSH server that connects you to your Docker containers
Automatically creates or joins Docker containers based on SSH users, enabling isolated sessions without manual intervention, as shown in the usage example where different users get different images.
Supports password and public-key authentication via external scripts, allowing integration with systems like LDAP, as indicated by the --password-auth-script and --publickey-auth-script options.
Allows restricting allowed Docker images, customizing run arguments, and setting default shells, providing control over container environments through CLI flags like --allowed-images and --docker-run-args.
Handles both TTY and non-TTY sessions for interactive shells or commands like git and rsync, as mentioned in the changelog support for exec without TTY.
Often needs Docker in privileged mode or with host volume mounts, as shown in the test command using --privileged, which introduces security risks and complicates deployment.
Focuses on basic shell access and command execution; advanced SSH features like SCP or port forwarding aren't explicitly supported and may require additional container-side setup.
The last stable release was in 2015, with master having unreleased changes, indicating possible inactivity and lack of recent updates or security patches.
The easiest, and most secure way to access and protect all of your infrastructure.
Chat over SSH.
A ssh server that knows who you are. $ ssh whoami.filippo.io
:computer: Get seamless remote access to any Linux device. Centralized SSH for the edge and cloud computing
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.