https://github.com/haravich/custom-ssh-server
This repository contains a Docker setup for creating a custom SSH server based on Alpine Linux. The setup includes the ability to use static SSH host keys, configure SSH key and password authentication, and set up user-specific SSH key pairs.
https://github.com/haravich/custom-ssh-server
alpine container docker dockerfile linux ssh ssh-server ssh-server-library ssh-service testing
Last synced: 14 days ago
JSON representation
This repository contains a Docker setup for creating a custom SSH server based on Alpine Linux. The setup includes the ability to use static SSH host keys, configure SSH key and password authentication, and set up user-specific SSH key pairs.
- Host: GitHub
- URL: https://github.com/haravich/custom-ssh-server
- Owner: haravich
- License: mit
- Created: 2023-08-12T13:44:03.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-11-09T11:21:22.000Z (3 months ago)
- Last Synced: 2025-11-09T13:15:45.661Z (3 months ago)
- Topics: alpine, container, docker, dockerfile, linux, ssh, ssh-server, ssh-server-library, ssh-service, testing
- Language: Shell
- Homepage: https://haravich.github.io/custom-ssh-server/
- Size: 42 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# SSH Server in Docker based on Alpine Linux
This repository contains a Docker setup for creating a custom SSH server based on Alpine Linux. The setup includes the ability to use static SSH host keys, configure SSH key and password authentication, and set up user-specific SSH key pairs.
[](https://github.com/haravich/custom-ssh-server/actions/workflows/docker-image.yml) 
## Table of Contents
- [SSH Server in Docker based on Alpine Linux](#ssh-server-in-docker-based-on-alpine-linux)
- [Table of Contents](#table-of-contents)
- [Introduction](#introduction)
- [Prerequisites](#prerequisites)
- [Getting Started](#getting-started)
- [Usage](#usage)
- [Customization](#customization)
- [License](#license)
## Introduction
This project provides a Dockerized environment for creating a custom SSH server with the following features:
- SSH key and password authentication
- User-specific SSH key pair generation
## Prerequisites
Before you begin, ensure you have the following installed:
- Docker: Follow the official [Docker installation guide](https://docs.docker.com/get-docker/) to install Docker on your system.
## Getting Started
1. **Clone the Repository**:
Clone this repository to your local machine:
```bash
git clone https://github.com/haravich/custom-ssh-server.git
cd custom-ssh-server
```
2. **Customize Configuration**:
Modify the setup-ssh-user.sh script to customize user creation and SSH key settings.
Place your public key in the ssh-keys directory (needed).
Customize the sshd_config file to adjust SSH server settings.
3. **Build and Run**:
Build the Docker image and run the container:
```bash
docker build -t custom-ssh-server .
docker run -d -p 2222:22 -e SSH_USER= -e SSH_PASSWORD= custom-ssh-server
(or)
docker run -d -p 2222:22 -e SSH_USER= -e SSH_PUBLIC_KEY=" || $(cat /ssh-keys/*.pub)" custom-ssh-server
(or)
docker run -d -p 2222:22 -e SSH_USER= -e SSH_PASSWORD= -e SSH_PUBLIC_KEY=" | $(cat /ssh-keys/*.pub)" custom-ssh-server
```
Replace , and with appropriate values.
## Usage
To connect to the SSH server:
```bash
ssh -i /path/to/private_key_file -p 2222 @localhost
```
Replace /path/to/private_key_file and with appropriate values.
## Customization
* Adjust the SSH server settings in the sshd_config file.
* Customize the setup-ssh-user.sh script to modify user creation.
## License
This project is licensed under the [MIT License](LICENSE.md). See the [LICENSE.md](LICENSE.md) file for details.
```
Copy and paste this Markdown content into a file named README.md in the root of your repository. Feel free to adjust the formatting and content as needed for your project.
```