У меня есть сценарий оболочки, который я хотел бы заменить на сценарий 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
У меня нет доступа к удаленному серверу. но что-то не так. У тебя есть идеи?