Próbuję skonfigurować automatyczne przeskakiwanie SSH przez serwer, który nie ma nc.
Działa to z wiersza poleceń:
ssh -A gateway ssh steve@target
(Dodałem mój klucz publiczny do agenta SSH).
Jednak dodanie go do ~ / .ssh / config nie powoduje:
Host target
User steveb
ProxyCommand ssh -A gateway ssh steve@targetip
$ ssh target
Pseudo-terminal will not be allocated because stdin is not a terminal.
^CKilled by signal 2.
Próba wymuszenia tego problemu -t
jest zabawna, ale bezużyteczna.
ProxyCommand ssh -A -t gateway ssh steve@targetip
$ ssh target
Pseudo-terminal will not be allocated because stdin is not a terminal.
Pseudo-terminal will not be allocated because stdin is not a terminal.
^CKilled by signal 2.
Więcej -t
? Nie dobrze.
ProxyCommand ssh -A -t -t gateway ssh steve@targetip
$ ssh target
tcgetattr: Inappropriate ioctl for device
^CKilled by signal 2.
czy to możliwe? Większość samouczków (np. Http://www.arrfab.net/blog/?p=246 ) sugeruje użycie nc
.
ssh
rhel
configuration
tty
Steve Bennett
źródło
źródło
Odpowiedzi:
SSH ProxyCommand bez netcat
ProxyCommand jest bardzo przydatny, gdy hosty są dostępne tylko pośrednio. W przypadku netcat jest to względna strata do przodu:
Tutaj {gw} i {host} są symbolami zastępczymi dla bramy i hosta.
Ale jest to również możliwe, gdy netcat nie jest zainstalowany na bramie:
/ Dev / tcp jest wbudowaną funkcją standardowego basha. Pliki nie istnieją. Aby sprawdzić, czy bash ma wbudowaną tę funkcję, uruchom:
... w bramie.
Aby upewnić się, że używasz bash, użyj:
Działa nawet z ControlMaster.
(Zaktualizowano 22 października, aby uwzględnić zabijanie, aby wyczyścić kota w tle) (Zaktualizowano 3 marca 2011 roku, aby wyjaśnić symbole zastępcze i wyjaśnić / dev / tcp)
100% uznania dla Rolanda Schulza. Oto źródło:
http://www.rschulz.eu/2008/09/ssh-proxycommand-without-netcat.html
zobacz więcej przydatnych informacji w komentarzach.
Jest też więcej tutaj:
http://www.linuxjournal.com/content/tech-tip-tcpip-access-using-bash
http://securityreliks.securegossip.com/2010/08/enabling-devtcp-on-backtrack -4r1ubuntu /
AKTUALIZACJA : oto coś nowego od Marco
W odniesieniu do ProxyCommand w ~ / .ssh / config, w którym ma się taką linię:
Marco mówi:
Wynik wyglądałby tak:
źródło
Duży T, a nie mały T.
Mój skrypt zwrócił tę wiadomość i już jej nie ma.
Korzystam z
authorized_key
systemu other_system, aby uruchomić polecenie:źródło
Wypróbuj to:
źródło
-t
połączenie obu połączeń i widziałem to w niewłaściwym. Zredagowałem swoją odpowiedź.Możesz wypróbować następującą technikę ssh'ing na serwerze 1, a następnie ssh'ing na serwerze 2.
Robienie tego w ten sposób działa dla mnie.
źródło