Mamy następującą sytuację:
- Moja maszyna
- Maszyna bramowa
- Maszyna docelowa
Nie mam uprawnień roota zarówno na # 2, jak i # 3. Nie mogę też tak naprawdę przechowywać informacji (nie więcej niż 200 MiB) na komputerze nr 2 (ponieważ ma to być brama do reszty sieci, nie więcej). Na komputerze nr 3 znajduje się folder o wielkości około 3 GiB, który chcę skopiować do lokalnego. Nie mogę SSH od # 1 do # 3, ale mogę SSH do # 2, a następnie do # 3. Nie można również skonfigurować publicznej prywatnej pary kluczy między numerami 2 i 3, ale klucz kluczy zainstalowany jest między numerami 1 i 2.
Zwykle używam kombinacji SSH i tar, aby to zrobić:
ssh name@host "tar cf - folder" > folder.tar
Ale w tym przypadku wymagałoby to pewnego rodzaju zagnieżdżenia i nie mogę tego zrobić.
Jaki byłby dobry sposób na uzyskanie danych z punktu 3 do nr 1?
źródło
ProxyCommand
issh -W
dwóchssh
poleceń można połączyć w jeden wiersz poleceń. Jeśli masz najnowszą wersję klienta OpenSSH, istnieje argument, który pozwoli ci to wszystko wykonać za pomocą jednegossh
polecenia.Możesz także skorzystać z możliwości sesji Master w nowszych wersjach SSH. Jest to opisane tutaj:
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Multiplexing
Prawdopodobnie wszystko, czego potrzebujesz, to edycja / tworzenie pliku .ssh / config. Dodaj definicje kontrolujące sesje główne:
Następnie możesz określić definicję serwera pierwszego skoku, na przykład:
Drugi przeskok wykorzysta serwer pierwszego przeskoku jako serwer proxy:
Nie zapomnij utworzyć katalogu ~ / .ssh / cm_socket, a uprawnienia do konfiguracji powinny wynosić 644.
Następnie powinieneś mieć możliwość SSH lub SCP bezpośrednio na / z drugiego serwera. Może być więcej takich serwerów.
źródło
ControlMaster
jest potrzebne, aby przejść do proxy. Bardziej odpowiednia strona w tym wikibooku to ta: en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts