05-31-2020 03:59 PM - edited 05-31-2020 04:04 PM
Does anyone know if python jumpssh library works when the jumpbox is a windows? If you have a working implementation of jumpssh over a windows server jumpbox, I would love to hear your feedbacks and sharing. Do I have to install openssh on the windows jumpbox to make it work? If you have suggestions for other solutions, I would love to hear.
From its documentation, it seems it would only work with a linux jumpbox.
https://pypi.org/project/jumpssh/
Thanks.
Solved! Go to Solution.
06-04-2020 04:54 AM - edited 06-04-2020 04:55 AM
Hi @pn2020
I had a little play with jump_ssh .. thought might come handy at some point .. btw .. thanks for sharing :)
I used Windows 10 as jumpbox .. installed OpenSSH server - https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
Simple to code I used to run show ver on remote host.
#!/usr/bin/env python from jumpssh import SSHSession from getpass import getpass jumpbox = '172.16.100.13' rhost = 'sbx-iosxr-mgmt.cisco.com' juser = input("Jumpbox username: ") jpass = getpass("Jumpbox password: ") try: jump_session = SSHSession(jumpbox, username=juser, password=jpass).open() if jump_session.is_active() == True: print() print("Connected to jumpbox ... {}".format(jumpbox)) try: remote_session = jump_session.get_remote_session(rhost, username='admin', port=8181, password='C1sco12345', look_for_keys=False, allow_agent=False,) if remote_session.is_active(): print() print("Connected to remote host ... {}\n".format(rhost)) result = remote_session.run_cmd('sh ver') print(result.output) except Exception as ex: print() print("Unable to connect to the remote host ... {}".format(rhost)) print(ex) print() jump_session.close() print() print("Jumpbox connection closed.") print() except Exception as ex: print() print("Unable to connect to the jumpbox ... {}".format(jumpbox)) print(ex) print()
05-31-2020 07:20 PM
Which part of it is broken? SSH to the jump host itself or after that?
Are you able to SSH to the Windows jump host manually? (Like a putty or from terminal?)
05-31-2020 10:01 PM
Unfortunately, I can't. I got @ssh_exchange_identification: read: Connection reset by peer, after being hung for a while.
Looking like, I have to talk to the server system admin to see if openssh can be installed on the windows jumpbox.
05-31-2020 10:41 PM
Actually, ssh from a local cmd widows to the windows jumpbox works. But doesn't look like ssh is installed on the windows jumpbox, ie, ssh cli command isn't recognized.
06-01-2020 06:45 AM
Hi
You do need to install OpenSSH server on Windows Jumpbox -
https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
06-01-2020 01:28 PM
Thanks everyone for your feedbacks. I will look more into this.
06-04-2020 04:54 AM - edited 06-04-2020 04:55 AM
Hi @pn2020
I had a little play with jump_ssh .. thought might come handy at some point .. btw .. thanks for sharing :)
I used Windows 10 as jumpbox .. installed OpenSSH server - https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
Simple to code I used to run show ver on remote host.
#!/usr/bin/env python from jumpssh import SSHSession from getpass import getpass jumpbox = '172.16.100.13' rhost = 'sbx-iosxr-mgmt.cisco.com' juser = input("Jumpbox username: ") jpass = getpass("Jumpbox password: ") try: jump_session = SSHSession(jumpbox, username=juser, password=jpass).open() if jump_session.is_active() == True: print() print("Connected to jumpbox ... {}".format(jumpbox)) try: remote_session = jump_session.get_remote_session(rhost, username='admin', port=8181, password='C1sco12345', look_for_keys=False, allow_agent=False,) if remote_session.is_active(): print() print("Connected to remote host ... {}\n".format(rhost)) result = remote_session.run_cmd('sh ver') print(result.output) except Exception as ex: print() print("Unable to connect to the remote host ... {}".format(rhost)) print(ex) print() jump_session.close() print() print("Jumpbox connection closed.") print() except Exception as ex: print() print("Unable to connect to the jumpbox ... {}".format(jumpbox)) print(ex) print()
06-04-2020 05:21 AM
Wow, that's awesome, thanks omz for sharing! I will play more with jumpssh.
03-16-2021 11:50 PM - edited 03-16-2021 11:57 PM
@omz, thanks for sharing ! Solved my problem which uses RHEL linux distro as the jumphost.
I should add, in my case I needed to modify the jump.session sub-method port number from 8181 to 22.
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: