#!/bin/sh # Tauscht die Host-Keys des laufenden Testziels (#011). Damit laesst sich pruefen, dass # sshkv einen geaenderten Host-Key ablehnt, ohne den Container neu zu erstellen. set -eu alt="$(ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub | awk '{print $2}')" rm -f /etc/ssh/ssh_host_* ssh-keygen -A >/dev/null neu="$(ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub | awk '{print $2}')" # SIGHUP laesst sshd sich neu ausfuehren und dabei die Host-Keys neu lesen. sshd laeuft # als PID 1 (siehe einstieg.sh); bestehende Sitzungen bleiben dabei erhalten. kill -HUP 1 # Erst zurueckkehren, wenn sshd wirklich den neuen Key ausliefert – sonst sieht ein # Test direkt danach je nach Timing noch den alten oder gar keinen Key. i=0 while [ "$i" -lt 50 ]; do aktuell="$(ssh-keyscan -T 1 -t ed25519 127.0.0.1 2>/dev/null | ssh-keygen -lf - 2>/dev/null | awk '{print $2}')" if [ "$aktuell" = "$neu" ]; then echo "Host-Keys getauscht: $alt -> $neu" exit 0 fi i=$((i + 1)) sleep 0.2 done echo "sshd liefert nach dem Tausch nicht den neuen Host-Key aus (erwartet $neu)." >&2 exit 1