SSH туннелирование сломанной трубы (для синергии)

-1

Я установил SSH между 2 ПК с Windows 7, используя openSSH в Cygwin. Проверка подлинности RSA проверена и работает, поэтому я могу без проблем подключиться к хосту через ssh.

Затем я настроил туннель на клиенте, используя:

"ssh -f -N -L localhost:24800:user@host:24800 user@host".

В идеале я хотел бы запустить программу под названием Synergy (которая подключается к порту 24800) с адресом «localhost» или 127.0.0.1 в качестве адреса сервера и порта 24800, время ожидания синергии, и мой терминал cygwin отображает «Ошибка записи: сломанный канал» , Это приводит к закрытию туннеля.

Не уверен, если это действительно так, но если я попробую:

$ ssh -vv -p 24800 localhost

Я получаю следующую ошибку:

"OpenSSH_6.1p1, OpenSSL 1.0.1c 10 May 2012 
debug1: Reading configuration data /etc/ssh_config
debug2: ssh_connect: needpriv 0 
debug1: Connecting to localhost [::1] port 24800.
debug1: Connection established.
debug1: identity file /home/PeterLaptop/.ssh/id_rsa type 1
debug1: identity file /home/PeterLaptop/.ssh/id_rsa-cert type -1
debug1: identity file /home/PeterLaptop/.ssh/id_dsa type -1
debug1: identity file /home/PeterLaptop/.ssh/id_dsa-cert type -1
debug1: identity file /home/PeterLaptop/.ssh/id_ecdsa type -1
debug1: identity file /home/PeterLaptop/.ssh/id_ecdsa-cert type -1
Write failed: Broken pipe
ssh_exchange_identification: Connection closed by remote host"

Извините, если вы не знакомы с синергией, но это просто программа, которая совместно использует управление мышью и клавиатурой между компьютерами, и я вполне уверен, что синергия не является проблемой. Кто-нибудь может сказать мне, что мне нужно сделать, чтобы это исправить?

РЕДАКТИРОВАТЬ: Следуя совету Иоахима, я побежал:

ssh -f -N -L 24800:address:24800 user@address

Это временно исправило проблему. Однако после того, как я отключился, а затем попытался восстановить соединение, проблема снова возникла.

Чтобы дать больше информации, я попытался снова с отладкой, чтобы дать следующее:

$ ./synergyc.exe localhost
INFO: Synergy 1.4.10 Client on Microsoft Windows 7 x64
NOTE: started client
NOTE: connecting to 'localhost': 127.0.0.1:24800
debug1: Connection to port 24800 forwarding to 155.198.108.119 port 24800 requested.
debug2: fd 6 setting TCP_NODELAY
debug3: fd 6 is O_NONBLOCK
debug3: fd 6 is O_NONBLOCK
debug1: channel 2: new [direct-tcpip]
WARNING: failed to connect to server: Timed out
NOTE: connecting to 'localhost': 127.0.0.1:24800
debug1: Connection to port 24800 forwarding to 155.198.108.119 port 24800 requested.
debug2: fd 7 setting TCP_NODELAY
debug3: fd 7 is O_NONBLOCK
debug3: fd 7 is O_NONBLOCK
debug1: channel 3: new [direct-tcpip]
WARNING: failed to connect to server: Timed out
NOTE: connecting to 'localhost': 127.0.0.1:24800
debug1: Connection to port 24800 forwarding to 155.198.108.119 port 24800 requested.
debug2: fd 8 setting TCP_NODELAY
debug3: fd 8 is O_NONBLOCK
debug3: fd 8 is O_NONBLOCK
debug1: channel 4: new [direct-tcpip]
Write failed: Broken pipe
NOTE: disconnected from server
NOTE: connecting to 'localhost': 127.0.0.1:24800
WARNING: failed to connect to server: Connection was refused

К сожалению, я все еще получаю эту ошибку «Ошибка записи: сломанная труба».

user1860856
источник

Ответы:

0

Правильный синтаксис для команды пересылки:

ssh -f -N -L 24800:address:24800 user@address

Обратите внимание на удаленный localhost в начале (это необязательно) и отсутствие имени пользователя в параметре mid (это должно быть только имя хоста)

Команда будет перенаправлять соединения на порт 24800 на локальном хосте на порт 24800 удаленного хоста.

Joachim Isaksson
источник
Большое спасибо, Иоахим. Как я могу пометить это как решенное?
user1860856
@ user1860856 Насколько я помню, рядом с моим ответом должен быть помечен флажок, который вы можете проверить :)
Joachim Isaksson
К сожалению, проблема снова возникла. Насколько я знаю, ничего не изменилось. Я отредактировал оригинальное сообщение, чтобы содержать больше информации
user1860856
0

Решил проблему, создав пакетный файл:

start C:\cygwin\bin\bash --login -i -c "ssh -N -L 24800:host:24800 user@host && C:/PROGRA~1/Synergy/synergyc -f localhost"
user1860856
источник