Muszę ustawić tunel między dwoma hostami.
Do tego używam ssh
w ten sposób:
ssh -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER
po tym loguję się do mojego SSH_SERVER.
Jak mogę uniknąć tej funkcji ?! Muszę tylko założyć tunel. Nie muszę się logować do mojego SSH_SERVER ...
Próbowałem opcji -N, ale utrzymywało to moją powłokę.
ssh
ssh-tunneling
Bau Miao
źródło
źródło
man ssh
pokazuje, jak:ssh -f -L 1234:localhost:6667 server.example.com sleep 10 && irc -c '#users' -p 1234 pinky 127.0.0.1
Określono opcję -f tła ssh i zdalne polecenie `` uśpienie 10 '', aby dać czas (10 sekund, w przykładzie) na uruchomienie usługi, która ma być tunelowana. Jeśli w podanym czasie nie zostaną wykonane żadne połączenia, ssh zakończy działanie. ``Odpowiedzi:
Jak powiedziano w innych postach, jeśli nie chcesz monitować na zdalnym hoście, musisz użyć
-N
opcji SSH. Ale to powoduje, że SSH działa bez wyświetlania monitu, a powłoka jest zajęta.Wystarczy umieścić SSH'ing jako zadanie w tle ze
&
znakiem:Spowoduje to uruchomienie tunelowania ssh w tle. Ale niektóre komunikaty mogą się pojawiać, szczególnie gdy próbujesz połączyć się z portem, który nie nasłuchuje (jeśli serwer Apache nie został uruchomiony). Aby uniknąć odradzania się tych wiadomości w powłoce podczas wykonywania innych czynności, możesz przekierować STDOUT / STDERR do dużej pustki:
Baw się dobrze z SSH.
źródło
-f
zamiast&
i io przekierowania.-f -N
czego szukasz:źródło
ps
ikill
itssh -N -f -M -S /tmp/file-sock -L port:server:port_to user@...
aby później móc zabić połączeniessh -S /tmp/file -o exit user@....
(lub zabić). W ten sposób nie ma potrzeby ps. Możesz powiedzieć, aby automatycznie utworzyć ten plik w ~ / .ssh / config.ssh -S /tmp/file-sock -O exit
, nie-o
en.wikibooks.org/wiki/OpenSSH/Cookbook/...