import paramiko import sys sys.stdout.reconfigure(encoding='utf-8') key_path = r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet' def test_login(ip, name): print(f"\n--- Testing Pi-hole auth on {name} ({ip}) ---") ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip, username='root', key_filename=key_path, timeout=10) stdin, stdout, stderr = ssh.exec_command("k3s kubectl get pods -n dns -l app=pihole -o jsonpath='{.items[0].metadata.name}'") pod = stdout.read().decode().strip() # Test login via curl to Pi-hole API cmd = f'k3s kubectl exec -n dns {pod} -- curl -s -X POST -H "Content-Type: application/json" -d \'{{"password":"snarfnetadmin"}}\' http://localhost/api/auth' stdin, stdout, stderr = ssh.exec_command(cmd) print("API Auth response:", stdout.read().decode()) ssh.close() test_login('140.44.4.11', 'Aerodrome') test_login('140.44.4.41', 'Spaceport')