nix-on-droid (téléphone de Marc)

Config Nix-on-Droid du téléphone : sshd local + tunnel inverse vers le VPS (rack), modèle tmate : le tel sort tout seul, aucun port ouvert, aucun tiers.

Contenu

  • flake.nix : entrée nixOnDroidConfigurations.phone (nixpkgs nixos-24.05, nix-on-droid release-24.05).
  • nix-on-droid.nix :
    • sshd local (port 8023, clé hermes@tower autorisée, sftp activé) ;
    • phone-tunnel-loop : boucle ssh -R 127.0.0.1:2224:127.0.0.1:8023 root@marcpartensky.com (relais VPS) ;
    • phone-up : démarrage idempotent (sshd, tunnel, wake-lock), appelé à chaque session ;
    • phone-status : état sshd/tunnel + logs.
  • La clé privée du tunnel vit uniquement sur le téléphone (~/.ssh/relay_ed25519), jamais dans ce dépôt.

Installation / mise à jour (sur le téléphone)

nix-on-droid switch --flake git+https://git.marcpartensky.com/mazex/nix-on-droid#phone

git est installé par cette config car le fetcher nix l'exige pour les refs git+. S'il manque (executing 'git': No such file or directory), passer par l'archive, qui n'a pas besoin de git :

nix flake prefetch 'tarball+https://git.marcpartensky.com/mazex/nix-on-droid/archive/main.tar.gz'
nix-on-droid switch --flake 'tarball+https://git.marcpartensky.com/mazex/nix-on-droid/archive/main.tar.gz?narHash=<sha256-...>#phone'

Côté relais (VPS rack)

Dans /root/.ssh/authorized_keys, une seule entrée restreinte :

command="false",restrict,port-forwarding,permitlisten="127.0.0.1:2224" ssh-ed25519 AAAA... phone-relay

Depuis une machine du réseau : ssh phone (défini avec ProxyJump rack, port 2224, utilisateur nix-on-droid), ou à la main :

ssh -J root@marcpartensky.com -p 2224 nix-on-droid@127.0.0.1

Rotation de la clé

Générer une nouvelle paire ed25519, remplacer l'entrée phone-relay sur le VPS, puis remplacer ~/.ssh/relay_ed25519 sur le téléphone (et relancer phone-up).

S
Description
Nix-on-Droid config for Marc's phone: sshd + reverse tunnel to the VPS relay
Readme
56 KiB
Languages
Nix 100%