ContainerSSH

ContainerSSH launches a new container for each SSH connection in Kubernetes, Podman or Docker. The user is transparently dropped in the container and the container is removed when the user disconnects. Authentication and container configuration are dynamic using webhooks, no system users required.

Stars
2.47K
Forks
64
Open issues
42
Closed issues
59
Last release
almost 3 years ago
Last commit
7 months ago
Watchers
2.47K
Total releases
12
Total commits
244
Open PRs
4
Closed PRs
21
Repo URL
Project Website
https://containerssh.io
Platform
License
apache-2.0
Category
Technology
MongoDB
Offers premium version?
NO
Proprietary?
NO
About

An SSH Server that Launches Containers in Kubernetes and Docker

ContainerSSH in One Minute

In a hurry? This one-minute video explains everything you need to know about ContainerSSH.

Need help?

Join the #containerssh Slack channel on the CNCF Slack »

Use cases Build a lab

Building a lab environment can be time-consuming. ContainerSSH solves this by providing dynamic SSH access with APIs, automatic cleanup on logout using ephemeral containers, and persistent volumes for storing data. Perfect for vendor and student labs.

Read more »

Debug a production system

Provide production access to your developers, give them their usual tools while logging all changes. Authorize their access and create short-lived credentials for the database using simple webhooks. Clean up the environment on disconnect.

Read more »

Run a honeypot

Study SSH attack patterns up close. Drop attackers safely into network-isolated containers or even virtual machines, and capture their every move using the audit logging ContainerSSH provides. The built-in S3 upload ensures you don't lose your data.

Read more »

How does it work?

  1. The user opens an SSH connection to ContainerSSH.
  2. ContainerSSH calls the authentication server with the users username and password/pubkey to check if its valid.
  3. ContainerSSH calls the config server to obtain backend location and configuration (if configured)
  4. ContainerSSH calls the container backend to launch the container with the specified configuration. All input from the user is sent directly to the backend, output from the container is sent to the user.

▶️ Watch as video » | 🚀 Get started »

Demo

🚀 Get started »

Contributing

If you would like to contribute, please check out our Code of Conduct as well as our contribution documentation.

Alternative Projects

Subscribe to Open Source Businees Newsletter

Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.

We'll never share your email with anyone else.