From 6f9e35dbfc5d76132e5b27dead42adf8cf8d594a Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 13 Jul 2026 18:01:44 +0800 Subject: [PATCH] add ssh test script --- scripts/ssh_test.py | 52 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 scripts/ssh_test.py diff --git a/scripts/ssh_test.py b/scripts/ssh_test.py new file mode 100644 index 000000000..3f5e0e1f8 --- /dev/null +++ b/scripts/ssh_test.py @@ -0,0 +1,52 @@ +import subprocess +import os + +# 写入密钥文件 +key = "\n".join([ + "-----BEGIN OPENSSH PRIVATE KEY-----", + "b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW", + "QyNTUxOQAAACD6GquAk5vBEfbtaJCTSfnQEhjzC8e5GF60hSbPP0BJbAAAAJiQxGNokMRj", + "aAAAAAtzc2gtZWQyNTUxOQAAACD6GquAk5vBEfbtaJCTSfnQEhjzC8e5GF60hSbPP0BJbA", + "AAAED2muzuU4BAiCqbg0ayGxgiDvfS/xI1SFvb32oLzTnn8/oaq4CTm8ER9u1okJNJ+dAS", + "GPMLx7kYXrSFJs8/QElsAAAAFHJ1bm5lci1hZG1pbkB4aWFveGlhAQ==", + "-----END OPENSSH PRIVATE KEY-----", + "", +]) + +key_path = "/tmp/ns_key" +with open(key_path, "w") as f: + f.write(key) +os.chmod(key_path, 0o600) + +# 验证 +r = subprocess.run(["ssh-keygen", "-y", "-f", key_path], capture_output=True, text=True) +print("Key valid:", "YES" if r.returncode == 0 else "NO") +if r.returncode != 0: + print("Error:", r.stderr.strip()) + +# 测试内网IP +print("\n=== Test 172.30.18.199 ===") +r = subprocess.run( + ["ssh", "-i", key_path, "-o", "StrictHostKeyChecking=no", "-o", "ConnectTimeout=10", + "root@172.30.18.199", "hostname && whoami"], + capture_output=True, text=True +) +print("stdout:", r.stdout.strip()) +if r.stderr.strip(): + print("stderr:", r.stderr.strip()) +print("exit:", r.returncode) + +# 测试公网IP +print("\n=== Test 116.62.226.203 ===") +r = subprocess.run( + ["ssh", "-i", key_path, "-o", "StrictHostKeyChecking=no", "-o", "ConnectTimeout=10", + "root@116.62.226.203", "hostname"], + capture_output=True, text=True +) +print("stdout:", r.stdout.strip()) +if r.stderr.strip(): + print("stderr:", r.stderr.strip()) +print("exit:", r.returncode) + +os.unlink(key_path) +print("\n=== DONE ===") \ No newline at end of file