Попытка использовать sshtunnel в python - PullRequest
0 голосов
/ 07 октября 2019

У меня есть сценарий оболочки, который я хотел бы заменить на сценарий python. Сценарий устанавливает SSH-туннель для предоставления потока TCP ... Я хотел бы сделать то же самое в Python, но у меня всегда есть ошибка.

Командная строка в оболочке выглядит примерно так:

ssh -l monlogin -i /home/toto/.ssh/test/id_dsa -L 10205:127.0.0.1:10205  IP

После этой команды я могу сделать telnet на 10205 и посмотреть поток данных.

В python:

import time
from sshtunnel import open_tunnel
import socket

if __name__ == '__main__':

    with open_tunnel(
    ('IP', 22),
    ssh_username="monlogin",
    ssh_pkey='/home/toto/.ssh/test/id_dsa',
    ssh_private_key_password=None,
    remote_bind_address=('127.0.0.1', 10205),
    local_bind_address=('127.0.0.1', 10205),
    debug_level=10,
    #threaded=False,
    ) as server:
        time.sleep(10)
        print(server.local_bind_port)
        while True:
            # # Create a TCP/IP socket
            # sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            # # Connect the socket to the port where the server is listening
            # server_address = ('127.0.0.1', 10205)
            # sock.connect(server_address)
            # #sock.settimeout(0)
            # while True:
            #     data = sock.recv(4096).decode('ascii')
            #     if data:
            #         print(data)
            #     time.sleep(0.01)
            time.sleep(1)

    print('FINISH!')

Я могу выполнить его, он напечатает local_bind_port, но когда я делаю "telnet localhost 10205", у меня появляется эта ошибка:

2019-10-07 09:55:16,906| WAR | MainThrea/0966@sshtunnel | Could not read SSH configuration file: ~/.ssh/config
2019-10-07 09:55:16,907| INF | MainThrea/0992@sshtunnel | 0 keys loaded from agent
2019-10-07 09:55:16,907| INF | MainThrea/1041@sshtunnel | 0 keys loaded from host directory
2019-10-07 09:55:16,912| DEB | MainThrea/1239@sshtunnel | Private key file (/home/toto/.ssh/test/id_dsa) could not be loaded as type <class 'paramiko.rsakey.RSAKey'> or bad password
2019-10-07 09:55:16,914| DEB | MainThrea/1228@sshtunnel | Private key file (/home/toto/.ssh/test/id_dsa, <class 'paramiko.dsskey.DSSKey'>) successfully loaded
2019-10-07 09:55:16,914| INF | MainThrea/0913@sshtunnel | Connecting to gateway: IP:22 as user 'monlogin'
2019-10-07 09:55:16,915| DEB | MainThrea/0916@sshtunnel | Concurrent connections allowed: True
2019-10-07 09:55:16,915| DEB | MainThrea/1354@sshtunnel | Trying to log in with key: b'...................'
2019-10-07 09:55:18,480| INF | Srv-10205/1388@sshtunnel | Opening tunnel: 127.0.0.1:10205 <> 127.0.0.1:10205
10205
2019-10-07 09:55:31,698| ERR |  Thread-1/1819@transport | Secsh channel 0 open FAILED: Connection refused: Connect failed
2019-10-07 09:55:31,699| ERR |  Thread-3/0385@sshtunnel | Could not establish connection from ('127.0.0.1', 10205) to remote side of the tunnel

У меня нет доступа к удаленному серверу. но что-то не так. У тебя есть идеи?

...