Aby dostać się do mojej maszyny w biurze, w tej chwili robię to:
me@home:~$ ssh unix.university.com
me@unix:~$ ssh unix.department.univeristy.com
[email protected]:~$ ssh office-machine.department.university.com
me@office-machine:~$ echo "This is very annoying"
Czy istnieje prosty sposób zautomatyzowania tego procesu, być może jedno polecenie, którego mogę użyć na końcu?
ssh
multiple-machines
Lucas
źródło
źródło
Odpowiedzi:
Możesz użyć klienta ssh do uruchomienia ssh na zdalnym komputerze po zalogowaniu.
(Powodem, dla którego uwzględniam
-t
w wywołaniach jest to, że ssh dawał mi błędy dotyczące: stdin nie będąc terminalem, gdy próbowałem go na moim komputerze; twoja maszyna może być inna.)Kiedy wyjdziesz z ostatniej powłoki, proces zakończy łańcuch, oszczędzając Ci ciągłego pisania Ctrl-D.
źródło
tar cf - something | ssh somewhere "cd /path/remote ; tar xf - "
:: mogą zostać uszkodzone, jeśli dodasz-t
! Zobacz na przykład odpowiedź wspaniałego StephaneChazelas unix.stackexchange.com/questions/151916/ … )-J
opcję. Myślę, że możesz to zrobić z wielomaProxyCommand
opcjami w konfiguracji.-J
możesz określić rozdzieloną przecinkami listę przeskoków do przejścia. Ale używanie zaProxyCommand
pomocą-W
jest nadal znacznie lepszym rozwiązaniem niż ta odpowiedź, jeśli zdarzy się, że używasz wersji zbyt starej, aby ją obsługiwać-J
.Tak, jest świetny sposób, aby to zrobić za pomocą ssh ProxyCommand i netcat
Umieść coś takiego w swoim .ssh / config
Spowoduje to zalogowanie się bezpośrednio do dowolnego serwera .department.university.com za pomocą hosta jump / bastion unix.university.com. Możesz także potrzebować sekcji bezpośrednio dla unix.university.com.
Oto link wyjaśniający, jak to działa: http://backdrift.org/transparent-proxy-with-ssh
Dzięki tej technice możesz teraz pisać
i wszystko będzie wyglądało bezpośrednio. Narzędzia takie jak rsync, scp itp. (Cokolwiek w stosie ssh) również będą działać przezroczyście.
źródło
-W
opcję, możesz zrobić coś takiego,ProxyCommand ssh -W %h:%p gateway
zamiast polegać na ncProxyCommand ssh -W %h:%p user@gateway
W OpenSSH 7.3 ssh dodał
-J
flagę wiersza poleceń i odpowiedniąProxyJump
opcję konfiguracji, aby dokładnie rozwiązać ten problem.Daj hostom, przez które chcesz ssh, listę rozdzieloną przecinkami
-J
. Na przykład:źródło
Tunelowanie SSH. Nie pamiętam dokładnie, jak to zrobić, ale wiem, że istnieje sposób, aby w zasadzie maszyna zezwoliła na tunel, być może podłączając się do osobnego portu. W ten sposób po prostu uruchomisz powłokę na tej samej maszynie początkowej (na przykład z innym portem), co spowoduje umieszczenie cię w ostatecznej lokalizacji.
Musiałbym jednak sprawdzić, jak to skonfigurować.
:)
źródło