Jak skonfigurować przekierowanie portów po otwarciu połączenia ssh?

13

Używam openssh zarówno na kliencie, jak i serwerze. Wiem, że mogę uruchomić ssh -Llub ssh -Rskonfigurować przekierowania portów przez ssh. Ponieważ jednak są to parametry wiersza polecenia, takie przekierowania muszą zostać zapisane przed otwarciem połączenia.

Czy mogę skonfigurować przekierowania portów w locie za pomocą klienta ssh z wiersza poleceń?

Kiedy korzystałem z PuTTYklienta ssh, mogłem interaktywnie skonfigurować przekierowanie portu, gdy połączenie było już otwarte, bez zrzucania ani ponownego łączenia, dlatego wiem, że jest to technicznie możliwe.

Denilson Sá Maia
źródło

Odpowiedzi:

24

Jeśli używasz wiersza polecenia SSH i nie wyłączyłeś funkcji znaku zmiany znaczenia , możesz wpisać ~Cpo nowym wierszu, aby otworzyć mini-konsolę na kliencie ssh. Następnie wpisz -L port:host:portlub -R port:host:portczy -D portjak byś w wierszu polecenia, aby dodać przekierowanie lub -KR portusunąć przekierowanie.

Bardziej elastyczną metodą konfigurowania przekierowań bez ponownego uwierzytelniania jest uruchomienie pierwszego klienta ssh jako master ( -Mlub -o ControlMaster=auto), a kolejnych klientów jako slave ( -Slub -o ControlMaster=auto). Niewolnicy tunelują przez połączenie ustanowione przez mistrza. Może być konieczne ustawienie ControlPathw wierszu polecenia lub w swoim ~/.ssh/config; zobacz opis opcji na ssh_configstronie podręcznika, aby uzyskać więcej informacji.

Gilles „SO- przestań być zły”
źródło
Na wypadek, gdyby ktoś napotkał ~C escape not available to multiplexex sessionsproblem tak jak przed chwilą , nie poluj na swoje główne połączenie. Zamiast tego po prostu dodaj -O forwarddo polecenia przekierowania portu ssh, jak w, ssh -O forward -nfL 1234:whatever:1234 theserveri będzie działać.
Patrick,