Moja sytuacja :
Ja (localhost) -> Serwer A (ip: 100.100.100.100) => (serwer B (ip: 192.168.25.100), serwer ....)
jestem w stanie połączyć się z serwerem SSH, ponieważ ma on prawdziwy adres IP, jeśli chcę połączyć się z serwerem b, chciałbym ssh serwer b z jego adresem ip (192.168.25.100)
przykład:
z mojego komputera:
ssh [email protected]
następnie w 100.100.100.100,
ssh [email protected]
to doprowadziłoby mnie do serwera B z ssh
co jeśli chcę połączyć się bezpośrednio z serwerem b? jak mogę to zrobić?
przykład:
z mojego oc:
[email protected]
próbowałem następujące:
ssh -L 22:localhost:22 [email protected]
bezskutecznie
źródło
me% ssh [email protected]
; czy już tego nie omówiliśmy? czy masz na myśli „co jeśli chcę w pełni rozwiniętą sieć VPN dla A?”, w którym to przypadku moja odpowiedź jest ważna.Nie musisz używać przekierowania portów ssh do ssh do wewnętrznego komputera za pośrednictwem serwera proxy. Możesz użyć funkcji ssh wykonywania polecenia na pierwszym serwerze, z którym się łączysz, aby ssh na trzecim komputerze.
Ta
-t
opcja zmusza ssh do przydzielenia pseudo-tty, aby można było uruchomić interaktywne polecenie.Może to również działać z kluczami ssh. Jeśli masz klucz prywatny i publiczny na komputerze A, a klucz publiczny w plikach kluczy autoryzowanych na komputerach B i C, możesz użyć tej
-A
opcji, aby przekazać połączenie agenta uwierzytelniania.źródło
Użyłem innego rozwiązania. Użyłem
ProxyCommand
opcji (tutaj~/.ssh/config
):Nie konfiguruje to żadnego tunelu port-port, zamiast tego tuneluje ssh przy użyciu standardowego wejścia / wyjścia. Ta metoda ma tę wadę, że w rzeczywistości istnieją trzy połączenia ssh do uwierzytelnienia. Ale aby połączyć się z hostem wewnętrznym, wystarczy wpisać:
... więc nie musisz się martwić o wybór adresu IP dla tego tunelu.
źródło
corkscrew
lub ), ale żaden z nich nie działa tak płynnie jak ten.nc
netcat
według strony podręcznika ssh ProxyCommand jest poprawną metodą
składnia jest następująca:
źródło
-W
opcja istniała, kiedy udzielono odpowiedzi na to pytanie. Ale w nowszych wersjach klienta ssh zgadzam się, że kombinacjaProxyCommand
i-W
jest preferowaną metodą. Być może dodaj kontekst pokazujący zarówno, jak można go użyć w wierszu poleceń, jak i przykład sekcji dla.ssh/config
.-W
polecenie, a które nie? Trochę googlingu nie dało mi szybko odpowiedzi ...-W
został wprowadzony w OpenSSH 5.4, wydany w 2010 roku. Więc odpowiedź brzmi: tak @kasperdPocząwszy od wersji OpenSSH 7.3 (pod koniec 2016 r.) Najprostszym sposobem jest ustawienie ProxyJump . W twoim
~/.ssh/config
:Lub w wierszu poleceń,,
-J B
.źródło