# SSH-Testziel fuer Integrationstests (#011). NUR fuer Tests und Entwicklung! # # Absichtlich offen konfiguriert (root-Login und Passwort-Anmeldung erlaubt): Das Ziel # bildet einen frisch installierten Host vor dem Bootstrap nach, auf dem sshkv sich # einmalig per Passwort anmeldet und dann seinen Deployment-Key hinterlegt. FROM debian:trixie-slim # openssh-client: Host-zu-Host-Tests (Ziel A ruft ssh/ssh-keyscan nach Ziel B auf). # procps: pgrep/ps fuer Healthcheck und Fehlersuche. RUN apt-get update \ && apt-get install -y --no-install-recommends \ openssh-server openssh-client sudo passwd procps \ && rm -rf /var/lib/apt/lists/* \ # Host-Keys aus dem Paket-Postinst entfernen: Sie wuerden sonst im Image-Layer # landen und jeder Container haette dieselben Keys. Erzeugt wird beim Start. && rm -f /etc/ssh/ssh_host_* \ && mkdir -p /run/sshd \ && useradd --create-home --shell /bin/bash --groups sudo test # Passwoerter werden beim Start aus der Umgebung gesetzt, damit Compose sie ohne # Neubau aendern kann; die Build-Args liefern nur die Standardwerte. ARG ROOT_PASSWORT=sshkv-test ARG TEST_PASSWORT=sshkv-test ENV SSHKV_ROOT_PASSWORT=${ROOT_PASSWORT} \ SSHKV_TEST_PASSWORT=${TEST_PASSWORT} COPY sshd-test.conf /etc/ssh/sshd_config.d/10-sshkv-test.conf COPY --chmod=0755 einstieg.sh /usr/local/sbin/einstieg COPY --chmod=0755 hostkeys-tauschen.sh /usr/local/bin/hostkeys-tauschen EXPOSE 22 # Prueft, ob sshd wirklich einen Host-Key ausliefert – ein laufender Prozess allein # heisst nach einem Neuladen noch nicht, dass er schon Verbindungen annimmt. HEALTHCHECK --interval=2s --timeout=3s --start-period=5s --retries=15 \ CMD ssh-keyscan -T 2 -t ed25519 127.0.0.1 2>/dev/null | grep -q ssh-ed25519 ENTRYPOINT ["/usr/local/sbin/einstieg"]