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.
This commit is contained in:
2026-09-02 20:30:39 +02:00
parent 7071cb7c34
commit f176cae360

View File

@ -123,8 +123,10 @@ def gaja_check() -> dict:
return {"online": False, "detail": "Offline"} return {"online": False, "detail": "Offline"}
# Check for a session with seat assigned (desktop session, not SSH) # 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( 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", "-o", "StrictHostKeyChecking=no", "-F", "/dev/null",
"gaja@192.168.1.122", "gaja@192.168.1.122",
"loginctl list-sessions --no-pager 2>/dev/null | grep gaja | grep seat"] "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"]: if not state["online"]:
return {"detail": "Not online — no action needed"} return {"detail": "Not online — no action needed"}
# -F /dev/null: skip system ssh config (broken includes make every ssh call fail)
_run( _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", "-o", "StrictHostKeyChecking=no", "-F", "/dev/null",
"gaja@192.168.1.122", "gaja@192.168.1.122",
"loginctl terminate-user gaja"], "loginctl terminate-user gaja"],