Tak, używając ProxyCommandw konfiguracji SSH.
Utwórz plik konfiguracyjny SSH w swoim katalogu domowym (chyba że chcesz zrobić to dla całego systemu) ~/.ssh/config:
Host unibroker # Machine B definition (the broker)
Hostname 12.34.45.56 # Change this IP address to the address of the broker
User myusername # Change this default user accordingly
# (`user@unibroker` can overwrite it)
Host internalmachine # Machine A definition (the target host)
ProxyCommand ssh -q unibroker nc -q0 hostname.or.IP.address.internal.machine 22
Teraz możesz bezpośrednio dotrzeć do maszyny A.
ssh user@internalmachine
Zauważ też, że teraz masz dla niego pojedynczą nazwę docelową hosta SSH, możesz jej używać również w innych aplikacjach. Na przykład:
SCP do kopiowania plików.
scp somefile user@internalmachine:~/
W aplikacjach GUI:
użyj sftp://user@internalmachine/jako lokalizacji do przeglądania na maszynie.
Oparte na KDE (Dolphin): użyj fish://user@internalmachine/
Notatki
Zmień hostname.or.IP.address.internal.machinei port ( 22) na maszynie, do której chcesz dotrzeć, tak jakbyś z unibrokermaszyny.
W zależności od wersji netcata na hoście unibrokera -q0opcję tę należy pominąć. W odniesieniu do uwierzytelnienia; w zasadzie konfigurujesz dwa połączenia SSH ze stacji roboczej. Oznacza to, że zarówno host unibrokera, jak i host maszyny wewnętrznej są weryfikowane / uwierzytelniane jeden po drugim (zarówno dla pary kluczy / hasła, jak i weryfikacji klucza hosta).
Wyjaśnienie
Takie podejście z użyciem ProxyCommandi „netcat” jest tylko jednym ze sposobów na to. Podoba mi się to, ponieważ mój klient SSH komunikuje się bezpośrednio z maszyną docelową, dzięki czemu mogę zweryfikować klucz hosta od mojego klienta i mogę korzystać z uwierzytelniania mojego klucza publicznego bez używania innego klucza w brokerze.
Każdy Hostokreśla początek nowej sekcji hosta. Hostnameto docelowa nazwa hosta lub adres IP tego hosta. Userjest to, co podasz jako część użytkownika ssh user@hostname.
ProxyCommandbędzie używany jako rura do maszyny docelowej. Poprzez użycie SSH do pierwszego komputera i bezpośrednie skonfigurowanie ncstamtąd prostego „netcat” ( ) do celu, jest to po prostu zwykły tekst przekazywany do wewnętrznego komputera od brokera pomiędzy nimi. Te -qopcje są do milczenia żadnego wyjścia (tylko osobiste preferencje).
Upewnij się, że na brokerze jest zainstalowany program Netcat (zwykle dostępny domyślnie w systemie Ubuntu) - netcat-openbsd
lub netcat-traditional
.
Pamiętaj, że nadal używasz SSH z szyfrowaniem dwa razy tutaj. Podczas gdy kanał Netcat jest zwykłym tekstem, twój klient SSH na twoim komputerze skonfiguruje inny zaszyfrowany kanał z ostateczną maszyną docelową.