import paramiko import sys sys.stdout.reconfigure(encoding='utf-8') key_path = r"C:\Users\Snarf\.ssh\id_ed25519_snarfnet" def set_pihole_pw(host, name): print(f"\n=== Setting Pi-hole password on {name} ({host}) ===") c = paramiko.SSHClient() c.set_missing_host_key_policy(paramiko.AutoAddPolicy()) c.connect(host, username="root", key_filename=key_path, timeout=5) # Try setting password via CLI stdin, stdout, stderr = c.exec_command("k3s kubectl -n dns exec deploy/pihole -- pihole -a -p snarfnetadmin || k3s kubectl -n dns exec deploy/pihole -- pihole setpassword snarfnetadmin") print(stdout.read().decode('utf-8')) err = stderr.read().decode('utf-8') if err: print("Stderr:", err) c.close() set_pihole_pw("140.44.4.11", "Aerodrome") set_pihole_pw("140.44.4.41", "Spaceport")