This repository has been archived on 2026-09-17. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
nixos-config/hosts/globalServices/forgejo-known-host.nix
pijukka 355b42e78e ssh: pin forgejo's port-2222 host key globally
Der Pin lag in den Dienstmodulen (hosts/{blunix,pinix}/localServices/
forgejo.nix). Auf pinix verschwand er dadurch mit der Reduktion am
12.09.2026, die forgejo.nix auskommentiert hat -- seitdem scheitert dort
jedes `git fetch` an "Host key verification failed". tnix hatte den Pin
nie, konnte also ebenfalls nicht mit Forgejo sprechen.

Es ist eine Client-Eigenschaft, keine Server-Eigenschaft: jeder Host, der
das Repo klont, braucht sie -- auch die, die Forgejo nicht betreiben.
Deshalb in globalServices, mit blunix als zusaetzlichem Hostnamen neben
der Tailnet-IP, weil die Remote-URL ssh://forgejo@blunix:2222/ lautet.

Key verifiziert am 12.09.2026: /var/lib/forgejo/data/ssh/gitea.rsa.pub auf
blunix, gelesen ueber die bereits gepinnte Port-22-Verbindung, Fingerprint
SHA256:WQro5SOdplFhw8FcMZJBjhYNrOOXCF13Z6oe57NiRXY -- identisch mit dem
ssh-keyscan von tnix und mit dem bisher hinterlegten Schluessel.

Getestet: switch auf tnix, danach `git fetch origin` erfolgreich.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ML1tzf3RKWwetud5S4TRAn
2026-09-12 13:41:29 +02:00

25 lines
1.7 KiB
Nix

{ config, ... }:
{
# Forgejos eingebetteter SSH-Server (Go, eigener ssh-rsa-Hostkey aus
# /var/lib/forgejo/data/ssh/gitea.rsa) lauscht auf Port 2222 an blunix'
# Tailnet-Adresse -- nicht auf dem regulaeren sshd. Ohne diesen Pin
# scheitert jedes `git fetch`/`push` gegen das Repo an
# "Host key verification failed".
#
# Global statt im Dienstmodul, weil es eine Client-Eigenschaft ist: der
# Pin lag frueher in hosts/{blunix,pinix}/localServices/forgejo.nix und
# verschwand auf pinix zusammen mit dem auskommentierten Dienst
# (docs/pinix-minimalbetrieb.md). Jeder Host, der das Repo klont, braucht
# ihn -- auch die, die Forgejo nie selbst betreiben.
#
# Fingerprint SHA256:WQro5SOdplFhw8FcMZJBjhYNrOOXCF13Z6oe57NiRXY,
# verifiziert am 12.09.2026 gegen die Datei auf blunix, gelesen ueber
# die bereits gepinnte Port-22-Verbindung.
programs.ssh.knownHosts.forgejo-tailnet = {
hostNames = [
"[${config.tailnetIPs.blunix}]:2222"
"[blunix]:2222"
];
publicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCtkarE/dXAdrXkPhYIl+takKG1YPtAOYwLlD1YIB/Dep7LSvpyWv8pyC5bXajuIzjEjXl5e8/XtJhROH9X5OwqBZygwiDjOaZR7IWu2qAHQBeQSIP2hLCm5LndCsnYgfCaIZe0ZhFqC7byiZlPH3hLYm7aYNeQiJy9eBh9PLdyfcW2oxhq9Fc8PXfpfTbPUgkCDWn0MYEfiRT2+839xYSHdIeAFSmLohaV6ptXjCLAes32HFZE13CadmhfEXY4DMi3V7RUTQeUTuOohjZFFE1RvKGEpaxIRU/Kf1tDK5rRrbCFdQCjMzDwndKewpujSIBVe0emjHv/hiIacHduYz3GrqQia95biFilDJuvKbUlr9nVQor6GD4+yK0Uy2BraFLUA6akp8M7Ma9Zi4gK+UjLIpDKxwfncpLCk4KcGbwsz5acxL8bpTqGw4yZU87tKRxN9NOThHROGqZfMHLfyFH0uXalwHNAqx6dcv706+LAkCR17F8lZ69NRW8Jj7WbPoCRgIl1Ea8D4ce/Hf6enEm8d3CGK3HE+EcN8OUnhLuh4XcrSqmMtBIiW9iu7okD7a6wsOautZzioRuXt/ZS92fPe6CpaQZCWtxr2gr9HtGGn9zrY6spNM5nIf597jaYMyET1EPyPdNyJuVEnJHkILend4xVnWTIyS2mx1QKOuAdCQ==";
};
}