tutorial libreria invoke_shell example python ssh paramiko

python - libreria - Reenvío de puertos con paramiko



python ssh server (2)

Puede utilizar https://github.com/pahaz/sshtunnel

pip install sshtunnel

Ejemplo de código:

import sshtunnel with sshtunnel.open( (ssh_host, ssh_port), ssh_host_key=None, ssh_username=ssh_user, ssh_password=ssh_password, ssh_private_key=None, remote_bind_address=(REMOTE_HOST, REMOTE_PORT)) as server: def do_something(port): # Do something with port pass print("LOCAL PORT:", server.local_bind_port) do_something(server.local_bind_port)

Estoy tratando de hacer un reenvío de puertos desde una aplicación python usando paramiko. Puedo configurar la conexión SSH bien, pero estoy un poco perplejo en cuanto a cómo usar paramiko.transport. Ya encontré este archivo , pero no puedo averiguar qué está pasando en él. De mirar los docs paramiko.Transport, parece que una sola línea utiliza la función open_channel, pero no puedo averiguar cómo implementar eso. Estoy tratando de replicar un simple ssh -L 8000: localhost: 8000.

¿Puede alguien ayudarme?


Encuentre algún código usando paramiko-1.7.7.1 , pycrypto-2.6 y el script paramiko-1.7.7.1 código desde la línea 115 hasta el final (para evitar el análisis de opciones).

import paramiko, sys from forward import forward_tunnel remote_host = "target_host" remote_port = 8000 local_port = 8000 ssh_host = "my_ssh_host" ssh_port = 22 user = "login" password = "s3cr3t" transport = paramiko.Transport((ssh_host, ssh_port)) # Command for paramiko-1.7.7.1 transport.connect(hostkey = None, username = user, password = password, pkey = None) try: forward_tunnel(local_port, remote_host, remote_port, transport) except KeyboardInterrupt: print ''Port forwarding stopped.'' sys.exit(0)

Lo he probado con éxito desde una estación de Windows, usando un servidor ssh bajo Red Hat y apuntando a un tercer servidor. (Estoy usando Python 2.7.2 )

Espero eso ayude,