feat(mac): tunnel SSH inverse autoreparant et cle du Mac acceptee
ExitOnForwardFailure=yes sur l'autossh du Mac : un forward rate (port deja pris, sshd pas encore pret au boot) ne laisse plus une session inutile, launchd reessaie. La cle du Mac (marc@Air-de-Marc) est autorisee sur tower et sur le deck : ssh tower et ssh deck passent par rack en ProxyJump.
This commit is contained in:
@@ -1,4 +1,10 @@
|
||||
# profiles/macos/configuration.nix ou un module dédié
|
||||
# Tunnel SSH inverse permanent Mac -> rack (VPS) : expose le sshd du Mac sur
|
||||
# 127.0.0.1:2223 du VPS (GatewayPorts no : jamais exposé publiquement).
|
||||
# Importé par profiles/macos/configuration.nix (module nix-darwin) ; la clé
|
||||
# du Mac (marc@Air-de-Marc) est déjà autorisée pour root@rack.
|
||||
# Depuis tower (alias `mac` dans ~/.ssh/config de hermes) :
|
||||
# ssh -J rack -p 2223 marc@localhost
|
||||
# Nécessite Remote Login activé (services.openssh.enable dans le profil).
|
||||
{ pkgs, ... }: {
|
||||
environment.systemPackages = [ pkgs.autossh ];
|
||||
|
||||
@@ -10,6 +16,9 @@
|
||||
"-N"
|
||||
"-o" "ServerAliveInterval=30"
|
||||
"-o" "ServerAliveCountMax=3"
|
||||
# Sans ça, un forward raté (port pris, sshd down au boot) laisserait
|
||||
# une session inutile ; avec, autossh sort et launchd réessaie.
|
||||
"-o" "ExitOnForwardFailure=yes"
|
||||
"-R" "2223:localhost:22"
|
||||
"root@marcpartensky.com"
|
||||
];
|
||||
|
||||
@@ -106,6 +106,13 @@
|
||||
# système est donc déclaré à la main. Accès shell direct (et-session +
|
||||
# zellij, cf services/eternal-terminal déjà importé plus haut) + sudo
|
||||
# NOPASSWD nixos-rebuild pour pouvoir builder sur place.
|
||||
# Clé du Mac pour marc : `ssh deck` depuis le Mac passe par rack
|
||||
# (ProxyJump), l'authentification finale est de bout en bout avec la clé du
|
||||
# Mac. La clé RSA de users.nix reste valable.
|
||||
users.users.marc.openssh.authorizedKeys.keys = lib.mkAfter [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMdX5m7b8xWL/9ZUeFRxahB4YY0v2rAV5CCFv8xTOlUh marc@Air-de-Marc"
|
||||
];
|
||||
|
||||
users.groups.hermes = {};
|
||||
users.users.hermes = {
|
||||
isSystemUser = true;
|
||||
|
||||
@@ -61,11 +61,14 @@ in {
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMdX5m7b8xWL/9ZUeFRxahB4YY0v2rAV5CCFv8xTOlUh marc@Air-de-Marc"
|
||||
];
|
||||
|
||||
# Clé root du VPS anywhere (/root/.ssh/id_ed25519) : donne au VPS l'accès SSH
|
||||
# à tower par le tunnel wg1 (10.100.0.3), donc depuis n'importe où sans
|
||||
# dépendre de l'IP publique de la box. Remplace l'ancien forward 42070.
|
||||
# Clés autorisées pour marc, en plus de la clé RSA de users.nix :
|
||||
# - root@anywhere : accès SSH du VPS par wg1 (10.100.0.3), sans dépendre
|
||||
# de l'IP publique de la box ni d'un forward.
|
||||
# - marc@Air-de-Marc : le Mac, pour `ssh tower` qui passe par rack
|
||||
# (ProxyJump), d'où qu'il soit.
|
||||
users.users.marc.openssh.authorizedKeys.keys = lib.mkAfter [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAc2f6U09CWD2yQNcyGz6Pz9EN3aJzvdCvr7FrSSgpwx root@anywhere"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMdX5m7b8xWL/9ZUeFRxahB4YY0v2rAV5CCFv8xTOlUh marc@Air-de-Marc"
|
||||
];
|
||||
|
||||
networking.hostName = "tower";
|
||||
|
||||
Reference in New Issue
Block a user