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/docs/tnix-ssh-mango.md
pijukka d7698b26e7 docs(tnix): WLAN-Fehlschlag korrekt zuordnen, PSK-Verdacht war falsch
Korrektur zu 7f54fb4. Ursache war nicht das Schluesselformat, sondern
zwei gleichzeitig auf wlan0 laufende wpa_supplicant-Instanzen: die
manuelle aus /tmp/iphone.conf und die per switch gestartete Unit. Das
Journal zeigt "SME: Trying to authenticate" gefolgt von "Authentication
request to the driver failed" und reason=CONN_FAILED -- der Treiber
lehnt ab, weil die Schnittstelle belegt ist. Ein falscher PSK ergaebe
WRONG_KEY, und ext_password_backend akzeptiert auch eine Passphrase von
8 bis 63 Zeichen, also greift der Verdacht auf pskRaw nicht.

Ob die Deklaration allein verbindet, ist weiter offen: nach dem Beenden
der Handinstanz blieb wlan0 DOWN, die neu gestartete Unit kam nicht mehr
ueber die Initialisierung hinaus. Vorgehen fuer den naechsten Versuch
steht jetzt als Reihenfolge im Dokument.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Aw4viUJyXGP8ANocHiF15q
2026-09-12 17:37:51 +02:00

93 lines
4.1 KiB
Markdown

# tnix SSH ueber Mango
Stand: 12.09.2026. Vom iPhone erfolgreich bestaetigt.
```sh
ssh -p 2223 builder@ipv6-test.0ff.space
```
Mango leitet TCP 2223 auf tnix' Ethernet-SLAAC-Adresse
`fdee:3c40:44f0:0:ca5b:76ff:fe96:e24`, Port 22, weiter. Vorher zeigte
die Regel auf die nicht mehr vorhandene Mango-WLAN-Adresse von tnix.
Die gezielte SNAT-Regel `tnix_ssh_return` ersetzt globale IPv6-Quelladressen
bei TCP 22 zu diesem Ziel durch Mangos LAN-Adresse `fdee:3c40:44f0::1`.
Damit gehen SSH-Antworten ueber Ethernet zurueck, waehrend tnix den
iPhone-Hotspot als Internetzugang behaelt. Im SSH-Log erscheint fuer diese
Verbindungen Mango als Client.
Umsetzung: `scripts/configure-mango-ipv6-ssh.sh` mit `HOSTS=tnix`.
Nur Firewall-Reload, kein Router-Reboot, kein Netzwerk-Neustart und kein
NixOS-Rebuild. Pinix-Regeln unveraendert.
Validierung: `fw4 check` erfolgreich; Mango erreicht das Internet;
oeffentlicher SSH-Login auf Port 2223 liefert `tnix`, Host-Key gegen den
lokalen ED25519-Key geprueft; Nutzer bestaetigt Login vom iPhone.
Backup auf Mango: `/root/ipv6-ssh-firewall-backup.CKoKpD/firewall`.
Fuer einen unmittelbaren Rueckbau diese Datei nach `/etc/config/firewall`
kopieren und die Firewall neu laden. Spaetere Firewall-Aenderungen dabei
nicht ueberschreiben.
## WLAN deklarativ: gescheiterter Versuch am 12.09.2026
Der Versuch, tnix' Hotspot-Verbindung deklarativ zu machen, ist
fehlgeschlagen und hat tnix vom Netz genommen:
```nix
wireless.networks.iPhone.pskRaw = "ext:psk_iphone";
```
Die Aenderung ist zurueckgenommen. Der Grund ist aber **nicht** die
Konfiguration, sondern der Ablauf beim Umstellen -- das ist der
eigentliche Merkposten.
### Ursache: zwei wpa_supplicant-Instanzen auf `wlan0`
Die Verbindung lief zu diesem Zeitpunkt ueber eine **von Hand**
gestartete Instanz (`wpa_supplicant -B -i wlan0 -c /tmp/iphone.conf`),
weil `wpa_supplicant.service` gar nicht lief. Der `switch` startete die
Unit zusaetzlich, und beide Instanzen hielten `wlan0` gleichzeitig:
```
wlan0: SME: Trying to authenticate with ea:3b:f5:d2:bc:67 (SSID='iPhone' freq=5220 MHz)
wlan0: SME: Authentication request to the driver failed
wlan0: CTRL-EVENT-SSID-TEMP-DISABLED id=1 ssid="iPhone" auth_failures=1 duration=10 reason=CONN_FAILED
```
Die deklarative Instanz hat den AP also gefunden und die
Authentifizierung angefordert; **der Treiber** hat sie abgelehnt, weil
die Schnittstelle bereits belegt war. Das wiederholte sich dreimal mit
steigendem Backoff, danach war das Netz temporaer deaktiviert.
Wichtig zur Abgrenzung: das ist **kein** Schluesselproblem. Ein falscher
PSK ergibt `WRONG_KEY` bzw. einen gescheiterten 4-Way-Handshake, nicht
`Authentication request to the driver failed`. Der zuerst naheliegende
Verdacht -- `pskRaw` verlange den rohen 32-Byte-PSK, im Secrets-File
liege aber eine Klartext-Passphrase (`psk_iphone` 9 Zeichen) -- trifft
nicht zu: wpa_supplicant akzeptiert ueber den `ext_password_backend`
auch eine Passphrase von 8 bis 63 Zeichen, und die Logzeilen belegen,
dass es bis zur Authentifizierungsanfrage gekommen ist.
### Was offen bleibt
Ob die Deklaration allein auf der Schnittstelle sauber verbindet, ist
**nicht erwiesen**. Nach dem Abschiessen der manuellen Instanz blieb
`wlan0` DOWN, und die daraufhin neu gestartete Unit kam ueber
Initialisierung und Regulatory-Domain nicht hinaus -- ohne einen
einzigen weiteren Authentifizierungsversuch. Der Zustand war zu kaputt,
um daraus etwas zu schliessen.
### Vorgehen fuer den naechsten Versuch
1. **Ethernet zum Mango stecken.** Schlaegt das WLAN fehl, ist der
Hotspot sonst die einzige Uplink-Quelle und die Maschine isoliert.
2. **Erst die manuelle Instanz beenden, dann die Unit starten** -- nicht
beide gleichzeitig laufen lassen. `pgrep -a wpa_supplicant` vorher
und nachher pruefen; es darf genau eine Instanz uebrig bleiben.
3. Nach dem Beenden der Handinstanz `wlan0` explizit hochholen
(`ip link set wlan0 up`), bevor Schluesse aus einem DOWN-Interface
gezogen werden.
4. Erst wenn es dann noch scheitert, das Schluesselformat verdaechtigen
und `wpa_passphrase iPhone '<passphrase>'` in
`secrets/wirelessSecretsFile.age` hinterlegen.