Moje pytanie jest w zasadzie, jak zamienić moje istniejące dwa kroki w jeden krok.
Mam działający tunel SSH skonfigurowany między dwoma komputerami za pomocą serwera pośrednika, takiego jak ten:
Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop
Obecnie robię SSH od Kubuntu_laptop do Debian_Server, a następnie z Debian_Server do Kubuntu_desktop. Chciałbym wykonać to jedno polecenie SSH, wydane na moim Kubuntu_laptop w bash, co powoduje, że jestem podłączony do Kubuntu_desktop (shell / bash).
Polecenia, których teraz używam, są następujące. Krok 1:
me@kubuntu_laptop:~$ ssh -i ~/.ssh/id_rsa admin@debian_server
Krok 2:
admin@debian_server:$ ssh -p 1234 -i /home/admin/.ssh/id_rsa admin@localhost
Następnie jestem połączony z kubuntu_desktop przez SSH (z kubuntu_laptop).
Klucze RSA są wymagane dla wszystkich połączeń SSH. Logowanie hasłem jest całkowicie wyłączone. I zauważ, że konta użytkowników komputerów są różne na dwóch komputerach.
Odnośnie połączenia dla tej nogi:
Debian_Server<--nat_fw<--Kubuntu_desktop
Oto, w jaki sposób ustalono:
autossh -M 5234 -N -f -R 1234:localhost:22 user@mydebian.com -p 22
Zauważ, że Kubuntu_desktop łączy się z pośrednikiem jako [email protected] (nie admin @ debian_server). Ale kiedy łączę się z Kubuntu_desktop, łączę się jako użytkownik administracyjny.
Nie mogę zmienić istniejącego portu monitorowania (5234) ani numeru portu zdalnego (- R) (1234 w tym przykładzie). Nie mogę zmienić zabezpieczeń SSH, aby umożliwić logowanie się za pomocą hasła. Nie mogę otworzyć żadnych nowych portów zapory. Nie mogę zmienić kont użytkowników (oprócz laptopa).
Odpowiedzi:
Upewnij się, że netcat jest zainstalowany na serwerze Debian i używaj go
ProxyCommand
w lokalnej konfiguracji SSH (~/.ssh/config
).źródło
Dzięki @Ignacio Vazquez-Abrams tutaj są wszystkie kroki:
Edytowałem config w następujący sposób:
Zawartość to:
Następnie po prostu połącz:
Połączono z kubuntu_desktop przez SSH w 1 kroku! Doskonały
Aktualizacja:
Dzięki temu jest bardziej elastyczny:
Nowa zawartość to:
Następnie po prostu połącz się z mamą:
I połącz się z tatą:
Oczywiście, Mama i Tata muszą mieć skonfigurowany Krok 0 (z mojego pierwotnego pytania), w którym każdy ma zdefiniowany własny port -R. Przykład dla taty:
Krok 0 (dla taty):
Opcjonalny:
źródło
ProxyCommand ssh debian_server_fqdn -W localhost:%p
więc nie trzeba mieć netcata na serwerze Debian.