Miałem ten pomysł przez długi czas i próbowałem go wdrożyć na kilka sposobów, bez powodzenia. Próbowałem google wiele razy i zawsze nie znalazłem tego, co jest potrzebne.
Jak zrobić:
$ ssh hostA
|--------------------------------|
| |
| |
| |
| |
| |
| |
| |
| root@hostA $ ssh hostB |
|--------------------------------|
|--------------------------------|
| |
| |
| |
| |
| |
| |
| root@hostB $ |
| root@hostA $ |
|--------------------------------|
Najbliższym rozwiązaniem, jakie wymyśliłem, jest pasek stanu ekranu GNU, który wyświetla ssh from hostA to hostB
(sztuczka polega na użyciu $SSH_...
zmiennych). Byłoby miło mieć wizualny stos wszystkich połączeń (nie tylko 2).
top
, jak ma być wyświetlany? Najlepszym rozwiązaniem jest tmux lub jeśli masz X-Window-System i nie masz nic przeciwko Gnome-Dependencies, Terminator .root@hostB_via_hostA
,root@hostC_via_hostB_via_hostA
? W takim razie podrap mój komentarz.Odpowiedzi:
W
~/.ssh/environment
możesz ustawić zmienne środowiskowe, które chcesz przekazać do hostów zdalnych. Wymaga toPermitUserEnvironment
włączenia ustawienia wsshd_config
.Więc co możesz zrobić, to w
.bashrc
dowolnym skrypcie, który chcesz, ustaw zmienną środowiskową do przejścia:Dla pierwszego skoku
HOSTPATH
będzie pusty, więc~/.ssh/environment
będzie zawierałHOSTNAME=-user@host1
.Gdy zalogujesz się do drugiego hosta,
HOSTNAME
zmienna env var zostanie przekazana, pokazując skąd pochodzisz. Gdy bashrc zostanie ponownie uruchomiony,HOSTPATH
zmienna zostanie zapisana do .ssh / enviroment z bieżącym hostem dołączonym do pierwszego, gotowym do następnego przeskoku:Każda nadzieja skutkowałaby
HOSTPATH
dołączeniem do bieżącego hosta i gotowym do przejścia przez środowisko ssh do następnego przeskoku.Możesz to dostosować do własnych potrzeb. Jeśli wyjdziesz z hosta i przejdziesz na inny, powinien on automatycznie usunąć hosta, z którego przyszedłeś ze ścieżki, ponieważ ponownie użyje aktualnie ustawionego
.ssh/environment
ustawienia. Może nawet poradzić sobie z pętlami, zostawię to jako ćwiczenie dla czytelnika :)źródło
Próbowałeś / oglądałeś ekran ?
Nie jest to dokładnie to, czego chcesz, ale możesz wydać screen -la, kiedy tylko chcesz uzyskać pożądany wpis.
źródło
screen
iscreen -la
wydaje się, że daje ten sam wynik