File: //lib64/python3.6/site-packages/zmq/ssh/__pycache__/tunnel.cpython-36.opt-1.pyc
3
VS�_�1 � @ s� d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl Z ddl
m
Z
mZ ddlm
Z
y4e j� �" e jde� ddlZejjZW dQ R X W n( ek
r� dZG dd� de�ZY nX d d
lmZ yddlZW n ek
r� dZY nX ddlmZ d
d� Zejed�ej�Zd(dd�Zdd� Z dd� Z!d)dd�Z"d*dd�Z#d+dd�Z$dd� Z%d d!� Z&d,d"d#�Z'd-d$d%�Z(ej)d&k�r�e'Z*ne$Z*dd'dd#dgZ+dS ).zXBasic ssh tunnel utilities, and convenience functions for tunneling
zeromq connections.
� )�print_functionN)�getpass�getuser)�Process�ignorec @ s e Zd ZdS )�SSHExceptionN)�__name__�
__module__�__qualname__� r r �/usr/lib64/python3.6/tunnel.pyr s r � )�forward_tunnel� )�bc C sb g }g }x>t | �D ]2}tj� }|jd� |j|j� d � |j|� qW x|D ]}|j� qNW |S )z4Select and return n random ports that are available.� r r
)r r )�range�socketZbind�appendZgetsockname�close)�nZportsZsockets�iZsockr r r �select_random_ports+ s
r zpass(word|phrase):c C s* |dkrt jdk}|st}nt}|| |�S )z�Attempt to make an ssh connection without a password.
This is mainly used for requiring password input only once
when many tunnels may be connected to the same server.
If paramiko is None, the default for the platform is chosen.
N�win32)�sys�platform�_try_passwordless_openssh�_try_passwordless_paramiko)�server�keyfile�paramiko�fr r r �try_passwordless_ssh= s
r"