Skip to content

Create server configuration manual and manpages #144

@inureyes

Description

@inureyes

Summary

Create comprehensive documentation for bssh-server and bssh-keygen, including configuration manual, man pages, and deployment guides.

Parent Epic

Documentation Requirements

1. Configuration Manual (Markdown)

Create docs/server-configuration.md:

# bssh-server Configuration Guide

## Overview

bssh-server is a lightweight SSH server designed for container environments...

## Configuration File

### Location
- Default: `/etc/bssh/server.yaml`
- Alternative: `./bssh-server.yaml`
- Override with: `--config <path>`

### Complete Reference

#### Server Settings

| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `server.bind_address` | string | `0.0.0.0` | Address to bind to |
| `server.port` | integer | `22` | Port to listen on |
| `server.host_keys` | list | - | Paths to host key files |
| ... | ... | ... | ... |

(Include all configuration options with descriptions)

## Example Configurations

### Minimal Configuration
...

### Container Deployment
...

### High Security
...

2. Man Pages

Create man pages in roff format:

bssh-server(8):

.TH BSSH-SERVER 8 "2024" "bssh-server 1.0" "System Administration"
.SH NAME
bssh-server \- Backend.AI SSH Server
.SH SYNOPSIS
.B bssh-server
[\fIOPTIONS\fR]
[\fICOMMAND\fR]
.SH DESCRIPTION
bssh-server is a lightweight SSH server designed for container environments.
It provides SSH, SFTP, and SCP functionality with built-in audit logging
and file transfer filtering.
.SH COMMANDS
.TP
.B run
Start the SSH server (default)
.TP
.B gen-config
Generate a configuration template
.TP
.B hash-password
Hash a password for configuration
.TP
.B check-config
Validate configuration file
.TP
.B gen-host-key
Generate host key files
.SH OPTIONS
.TP
.BR \-c ", " \-\-config " " \fIFILE\fR
Configuration file path
.TP
.BR \-p ", " \-\-port " " \fIPORT\fR
Port to listen on
...
.SH FILES
.TP
.I /etc/bssh/server.yaml
Default configuration file
.TP
.I /etc/bssh/ssh_host_*_key
Host key files
.SH SEE ALSO
.BR bssh (1),
.BR bssh-keygen (1),
.BR sshd (8)
.SH AUTHORS
Lablup Inc.

bssh-keygen(1):

.TH BSSH-KEYGEN 1 "2024" "bssh-keygen 1.0" "User Commands"
.SH NAME
bssh-keygen \- SSH key generation tool
.SH SYNOPSIS
.B bssh-keygen
[\fB\-t\fR \fItype\fR]
[\fB\-b\fR \fIbits\fR]
[\fB\-f\fR \fIfile\fR]
[\fB\-C\fR \fIcomment\fR]
.SH DESCRIPTION
bssh-keygen generates SSH key pairs in OpenSSH format.
...

3. Container Deployment Guide

Create docs/container-deployment.md:

# Container Deployment Guide

## Docker

### Dockerfile
\`\`\`dockerfile
FROM debian:bookworm-slim

COPY bssh-server /usr/local/bin/
COPY bssh-keygen /usr/local/bin/

RUN bssh-keygen -t ed25519 -f /etc/bssh/ssh_host_ed25519_key -y

EXPOSE 22
ENTRYPOINT ["bssh-server"]
\`\`\`

### docker-compose.yml
\`\`\`yaml
services:
  ssh:
    image: bssh-server:latest
    ports:
      - "2222:22"
    volumes:
      - ./config.yaml:/etc/bssh/server.yaml:ro
      - ./authorized_keys:/etc/bssh/authorized_keys:ro
    environment:
      - BSSH_PORT=22
\`\`\`

## Kubernetes

### Deployment
...

4. Quick Start Guide

Create docs/quick-start.md:

# Quick Start

## Installation

### From Binary
\`\`\`bash
curl -LO https://github.com/lablup/bssh/releases/latest/download/bssh-server
chmod +x bssh-server
sudo mv bssh-server /usr/local/bin/
\`\`\`

## First Run

1. Generate host keys:
\`\`\`bash
sudo mkdir -p /etc/bssh
sudo bssh-server gen-host-key -t ed25519 -o /etc/bssh/ssh_host_ed25519_key
\`\`\`

2. Create configuration:
\`\`\`bash
bssh-server gen-config | sudo tee /etc/bssh/server.yaml
\`\`\`

3. Add a user:
\`\`\`bash
bssh-server hash-password  # Enter password, copy hash
# Edit /etc/bssh/server.yaml to add user
\`\`\`

4. Start server:
\`\`\`bash
sudo bssh-server run
\`\`\`

Files to Create

File Description
docs/server-configuration.md Complete configuration reference
docs/container-deployment.md Docker/Kubernetes deployment
docs/quick-start.md Getting started guide
docs/security.md Security considerations
docs/audit-logging.md Audit logging setup
man/bssh-server.8 Man page for bssh-server
man/bssh-keygen.1 Man page for bssh-keygen

Documentation Requirements

  1. All configuration options documented
  2. All CLI arguments documented
  3. Example configurations for common use cases
  4. Troubleshooting section
  5. Security best practices
  6. Integration examples (OTEL, Logstash)

Man Page Installation

Add to Makefile or build script:

install -Dm644 man/bssh-server.8 /usr/share/man/man8/bssh-server.8
install -Dm644 man/bssh-keygen.1 /usr/share/man/man1/bssh-keygen.1

Acceptance Criteria

  • Configuration reference with all options
  • Man page for bssh-server(8)
  • Man page for bssh-keygen(1)
  • Container deployment guide (Docker)
  • Kubernetes deployment guide
  • Quick start guide
  • Security documentation
  • Audit logging documentation
  • Example configurations
  • Troubleshooting guide

Metadata

Metadata

Assignees

Labels

priority:mediumMedium priority issuestatus:readyReady to be worked ontype:docsImprovements or additions to documentation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions