Czy można używać OpenSSH do przekazywania do innych urządzeń obsługujących SSH, takich jak przełączniki routerów itp. Czy jest to coś, co można zrobić bez tworzenia aplikacji Linux na zamówienie?
Dzięki
Pewnie; wystarczy użyć przekierowania / tunelowania portów SSH. Uruchom połączenie ssh z maszyną „proxy” za pomocą następującego polecenia:
ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
$PROXYHOST
: komputer, do którego masz dostęp SSH$REMOTEHOST
: maszyna, z którą $ PROXYHOST może się połączyć, ale nie możesz. Użyj nazwy hosta lub adresu IP, które $PROXYHOST
mogą być używane w odniesieniu do urządzenia$SSHPORT
: port, którego nasłuchuje sshd na zdalnym hoście; najprawdopodobniej 22$LOCALPORT
: lokalny port wychodzący SSH otwiera się na twoim komputerze lokalnym, który przekazuje do portu 22 na $REMOTEHOST
Pozostaw to połączenie, aby tunel działał. Możesz także dodać -N
do polecenia, aby to połączenie nie wywoływało zdalnej powłoki i nie zamknąłbyś jej przypadkowo później.
Po utworzeniu tunelu wykonaj następujące czynności:
ssh -p $LOCALPORT localhost
Spowoduje to próbę połączenia SSH z komputerem lokalnym na porcie, który jest przekierowany do $REMOTEHOST
portu SSH.
Jeśli chcesz zaktualizować konfigurację na kliencie, możesz skonfigurować klienta tak, aby używał skrzynki bramy jako serwera proxy . Twój przekaźnik będzie wymagał instalacji netcat, a dla uzyskania najlepszych rezultatów będziesz chciał skonfigurować uwierzytelnianie oparte na kluczach.
Oto, czego używam w moim .ssh / config do łączenia się z innym hostem.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"
Za pomocą powyższego możesz po prostu uruchomić polecenie ssh internal-ssh-host-proxy z komputera klienckiego.
Jeśli hostem SSH proxy jest klient OpenSSH 5.4 lub nowszy, nie potrzebujesz netcat, a zamiast tego możesz użyć wbudowanego trybu netcat.
Host internal-ssh-host-proxy
ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22
Z przedstawionych odpowiedzi Zordache's jest najlepszym ogólnym rozwiązaniem. Jednak dla potomnych, jeśli chcesz po prostu połączyć ad-hoc bez edytowania konfiguracji, użyj
-t
flagi, aby przydzielić pseudo terminal wraz z uruchomieniem ssh bezpośrednio na przekaźniku.źródło
Możesz automatycznie przekazywać połączenia za pomocą OpenSSH. W swoim
~/.ssh/authorized_keys
pliku możesz określić polecenie do wykonania, które może być SSH dla drugiego komputera.To, co zobaczysz, to dwa monity
Password:
: jeden dla serwera przekazywania i jeden dla serwera docelowego. Zawsze możesz usunąć to zachowanie za pomocą certyfikatów.źródło