Czy istnieje sposób, w jednym poleceniu, ustanowić połączenie ssh z mojego komputera A, poprzez komputer B, do komputera C, tak że mam dostęp do powłoki na komputerze C?
Zmarszczka (która wydaje się wykluczać po prostu przekazywanie połączenia ssh za pomocą opcji -L) polega na tym, że mam hasło do konta na komputerze B, a konto na komputerze B jest upoważnione do połączenia z kontem na komputerze C, ale Nie mam hasła do konta na komputerze C.
Odpowiedzi:
Zrozumiałem, że chcesz się tylko zalogować do komputera C, a nie tunelować niczego od A do C. Więc to powinno załatwić sprawę:
Być może będziesz musiał wprowadzić hasło dwukrotnie, najpierw dla komputera B, a następnie dla komputera C, ale można tego uniknąć, używając uwierzytelniania parą kluczy ssh.
źródło
ssh -t computer-b "ssh -t computer-c 'ssh computer-d'"
: DPrawdopodobnie chcesz użyć ProxyCommand SSH: http://benno.id.au/blog/2006/06/08/ssh_proxy_command
źródło
Jeśli używasz kluczy ssh, możesz wygenerować nowy klucz dla komputera B i użyć go do połączenia z A do B. Na komputerze B możesz dodać
w
~/.ssh/authorized_keys
pliku. Oznacza to, że ilekroć połączysz się z B za pomocą tego klucza ssh, wykona onssh C
polecenie.Nie wiem czy to działa z scp.
źródło
Posługiwać się
ProxyCommand
Zobaczyć
man ssh_config
. Polecam skorzystać zProxyCommand
. Weźmy twój oryginalny scenariusz:Edytuj
~/.ssh/config
z następującą zawartością.Teraz będziesz mógł bez problemu dotrzeć do komputera C. np
Zalety tej metody
Więcej Ochrony
Potrzebujesz tylko swojego klucza prywatnego, aby być na komputerze A (swoim komputerze).
nc
Komenda będzie działać jako serwer proxy, w którym SSH szyfrowania ruchu wskroś. Obejmuje to uwierzytelnianie. Rozprowadzanie klucza prywatnego na wielu serwerach jest bardzo złym pomysłem (ponieważ każdy serwer, na który został naruszony klucz prywatny, ostatecznie narusza klucz prywatny).Pasuje do wielu miejsc docelowych
Można dopasować wiele komputerów docelowych za pomocą
Host
. Pojedynczy komputer lub dowolny komputer w określonej sieci (np.192.168.35.0/24
W powyższym przykładzie) do proxy przez komputer B. Służy również jako alias.W powyższym przykładzie będzie proxy przez komputer B, aby uzyskać dostęp do adresu IP.
Łańcuchy proxy Daisy
Za pomocą tej metody można połączyć szereg dowolnych automatycznych serwerów proxy. np. możesz dodać komputer D, który jest dostępny tylko z komputera C i będzie działał transparentnie.
ssh computerd
będzie automatycznie proxy przez komputer C i komputer B w powyższychssh_config
przykładach.źródło