36 lines
1.7 KiB
Python
36 lines
1.7 KiB
Python
import paramiko
|
|
import sys
|
|
|
|
sys.stdout.reconfigure(encoding='utf-8')
|
|
|
|
key_path = r"C:\Users\Snarf\.ssh\id_ed25519_snarfnet"
|
|
pub_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC6ycMke4AaV2qzWfULZCTZOKhSKf4pY2qRGYjYzs1MGKutJxt2jkYNK2aS0XffxLRR49v23zHbBwLYraNl2Mkb9rsKsyvKn8CAa1CEl9NxOci4LDRT8CeWHRnMZn8Mdu1pfeRwM26/Bjnd4RJrSKC7fyM0OlOpEp0DgnuPBqBtPMFGw+TCUT8eZ0pBrAI94wEan4l35kmuBcqm6RH3KuD1dDJKnPLzJ3/T21CViYL0GgFIDDor/hGI45VfOI/jKmkgM4YoudTCde6uPV5e2yaJpORZlR4nDxg9ntXp8HxbHGZkXYr55Ibsjem0lMU6nBh33jGbJVvat1Ay4oNCbygJsHfC/8ppe0bnLhnasxVAXhTvklZZL/sf7K/VS0ZifpfqB6DKtr1lziOm2wQeahv+Y1uoHkVNa3XY8Fx7xGPeT1BGd9lfcbUoweoTdMPMIPaSZlNGY32AHYkM4PShG9yI1coAqXzMby0+Z/Qwtr4l6cLKVvcGgqh5sd+z1+YvZbs= root@SNINFR2LNXCTL01"
|
|
|
|
# 1. Authorize on 140.44.4.71
|
|
c71 = paramiko.SSHClient()
|
|
c71.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
c71.connect("140.44.4.71", username="root", key_filename=key_path, timeout=10)
|
|
|
|
cmd = f"""
|
|
mkdir -p ~/.ssh && chmod 700 ~/.ssh
|
|
grep -qF '{pub_key}' ~/.ssh/authorized_keys 2>/dev/null || echo '{pub_key}' >> ~/.ssh/authorized_keys
|
|
chmod 600 ~/.ssh/authorized_keys
|
|
"""
|
|
c71.exec_command(cmd)
|
|
c71.close()
|
|
print("Authorized 140.44.4.11 key on 140.44.4.71.")
|
|
|
|
# 2. Test SSH from 140.44.4.11 to 140.44.4.71
|
|
c11 = paramiko.SSHClient()
|
|
c11.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
c11.connect("140.44.4.11", username="root", key_filename=key_path, timeout=10)
|
|
|
|
stdin, stdout, stderr = c11.exec_command("ssh -o BatchMode=yes -o StrictHostKeyChecking=no root@140.44.4.71 hostname")
|
|
out = stdout.read().decode('utf-8').strip()
|
|
err = stderr.read().decode('utf-8').strip()
|
|
print("Result of ssh from 140.44.4.11 to 140.44.4.71:")
|
|
print("STDOUT:", out)
|
|
if err: print("STDERR:", err)
|
|
c11.close()
|
|
|