URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 67263
[ Назад ]

Исходное сообщение
"ssh - cancellation of existing remote port-forwardings"

Отправлено lynx , 29-Июн-06 11:51 

hi!

есть такая трабла:

пробрасываю порты по ssh

ssh SSH_HOST -l SSH_USER -p SSH_PORT -R 443:DESTINATION_HOST:443 -o ConnectTimeout=10 -o ServerAliveInterval=2 -o ServerAliveCountMax=1 -o StrictHostKeyChecking=no -N

запускается это в скрипте в цикле, после отваливания опять поднимается через 30 секунд. иногда почему-то после очередного разрыва соединение поднимается, а порт на удаленной стороне нет, единственное сообщение об ошибке

Warning: remote port forwarding failed for listen port 443

на удаленной стороне на этот порт ни чего не садится. помогает если переподсоедиться через некоторое время.

в мане ssh есть такое

~C      Open command line.  Currently this allows the addition of port
             forwardings using the -L and -R options (see below).  It also
             allows the cancellation of existing remote port-forwardings using
             -KR hostport.  Basic help is available, using the -h option.


что за "-KR hostport" ? не сочтите за чайника, но я так и не п нонял как этим пользоваться :) нужно как-то закрывать порт если он там болтается после обрыва.



Содержание

Сообщения в этом обсуждении
"ssh - cancellation of existing remote port-forwardings"
Отправлено vt , 29-Июн-06 13:47 
>ssh SSH_HOST -l SSH_USER -p SSH_PORT -R 443:DESTINATION_HOST:443 -o ConnectTimeout=10 -o ServerAliveInterval=2
>-o ServerAliveCountMax=1 -o StrictHostKeyChecking=no -N

>Warning: remote port forwarding failed for listen port 443

Манипулировать портами 1-1024 можно только с root-овыми правами


"ssh - cancellation of existing remote port-forwardings"
Отправлено lynx , 29-Июн-06 14:14 
>>ssh SSH_HOST -l SSH_USER -p SSH_PORT -R 443:DESTINATION_HOST:443 -o ConnectTimeout=10 -o ServerAliveInterval=2
>>-o ServerAliveCountMax=1 -o StrictHostKeyChecking=no -N
>
>>Warning: remote port forwarding failed for listen port 443
>
>Манипулировать портами 1-1024 можно только с root-овыми правами

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


"ssh - cancellation of existing remote port-forwardings"
Отправлено vt , 29-Июн-06 14:51 
Sorry, невнимательно прочитал вопрос
root по ssh - как-то в голове не уложилось )
Тогда, по-видимому, надо так же root-ом по ssh вначале запускать скрипт,
который будет убивать висящий процесс предыдущего сеанса

"ssh - cancellation of existing remote port-forwardings"
Отправлено lynx , 29-Июн-06 15:12 

>root по ssh - как-то в голове не уложилось

а что поделаешь, если нужен порт < 1024

со скриптом такой вариант в готову пришел

ssh -R 3333:myhost:3333 ssh_host -l user sleep 5 && netstat -an|grep tcp|grep LISTEN|grep "3333" && ping localhost || exit

если порт 3333 слушается, то ping localhost до бесконечности, заодно и канал не отвалится. если нет , то exit

такой вариант должет работать с разными ваоиантами netstat


"ssh - cancellation of existing remote port-forwardings"
Отправлено lynx , 29-Июн-06 15:16 
>
>>root по ssh - как-то в голове не уложилось
>
>а что поделаешь, если нужен порт < 1024
>
>
>
>со скриптом такой вариант в готову пришел
>
>ssh -R 3333:myhost:3333 ssh_host -l user sleep 5 && netstat -an|grep tcp|grep
>LISTEN|grep "3333" && ping localhost || exit
>
>если порт 3333 слушается, то ping localhost до бесконечности, заодно и канал
>не отвалится. если нет , то exit
>
>такой вариант должет работать с разными ваоиантами netstat

только
sleep 5 && netstat -an|grep tcp|grep LISTEN|grep "3333" && ping localhost
нужно в кавычки