fix: SSH key permissions and configurable port

This commit is contained in:
Greg Hendrickson
2026-01-27 17:19:05 +00:00
parent 202e98fbfd
commit 4b4a65fa96
2 changed files with 10 additions and 7 deletions

View File

@@ -15,13 +15,14 @@ COPY src/ src/
# Install Python dependencies
RUN pip install --no-cache-dir .
# Generate SSH host key
RUN mkdir -p /etc/shellmate && \
ssh-keygen -t ed25519 -f /etc/shellmate/ssh_host_key -N ""
# Create user and directories
RUN useradd -m shellmate && \
mkdir -p /etc/shellmate && \
chown shellmate:shellmate /etc/shellmate
# Run as non-root
RUN useradd -m shellmate
# Switch to shellmate user and generate SSH key
USER shellmate
RUN ssh-keygen -t ed25519 -f /etc/shellmate/ssh_host_key -N ""
EXPOSE 2222

View File

@@ -78,10 +78,12 @@ async def handle_client(process: asyncssh.SSHServerProcess) -> None:
async def start_server(
host: str = "0.0.0.0",
port: int = 22,
host_keys: list[str] = None,
port: int | None = None,
host_keys: list[str] | None = None,
) -> None:
"""Start the SSH server."""
import os
port = port or int(os.environ.get("SHELLMATE_SSH_PORT", "2222"))
host_keys = host_keys or ["/etc/shellmate/ssh_host_key"]
logger.info(f"Starting ShellMate SSH server on {host}:{port}")