From f176cae360f6d3016417c62d16dca2af24ebdb31 Mon Sep 17 00:00:00 2001 From: Mitja Horvat Date: Wed, 2 Sep 2026 20:30:39 +0200 Subject: [PATCH] fix: make gaja ssh calls immune to broken system ssh config Every ssh client call on this box fails with 'Bad owner or permissions' on /etc/ssh/ssh_config.d (owned by nobody), which silently broke Gaja's online check on every tick. Pass -F /dev/null so the checks use no system/user ssh config at all; host key verification via known_hosts is unaffected. --- devices.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/devices.py b/devices.py index c2be8cf..3f2200a 100644 --- a/devices.py +++ b/devices.py @@ -123,8 +123,10 @@ def gaja_check() -> dict: return {"online": False, "detail": "Offline"} # Check for a session with seat assigned (desktop session, not SSH) + # -F /dev/null: skip system ssh config (broken includes make every ssh call fail) check = _run( - ["sshpass", "-p", GAJA_PASSWORD, "ssh", "-o", "ConnectTimeout=5", + ["sshpass", "-p", GAJA_PASSWORD, "ssh", "-F", "/dev/null", + "-o", "ConnectTimeout=5", "-o", "StrictHostKeyChecking=no", "-F", "/dev/null", "gaja@192.168.1.122", "loginctl list-sessions --no-pager 2>/dev/null | grep gaja | grep seat"] @@ -141,8 +143,10 @@ def gaja_turnoff() -> dict | None: if not state["online"]: return {"detail": "Not online — no action needed"} + # -F /dev/null: skip system ssh config (broken includes make every ssh call fail) _run( - ["sshpass", "-p", GAJA_PASSWORD, "ssh", "-o", "ConnectTimeout=5", + ["sshpass", "-p", GAJA_PASSWORD, "ssh", "-F", "/dev/null", + "-o", "ConnectTimeout=5", "-o", "StrictHostKeyChecking=no", "-F", "/dev/null", "gaja@192.168.1.122", "loginctl terminate-user gaja"],