Na serwerze linuxowym, w jaki sposób używasz wielu terminali na jednym połączeniu ssh?

15

Często otwieram kilka połączeń ssh, aby przeglądać jednocześnie kilka plików dziennika tail -f.

Nie jest to problemem, gdy jestem w domu, ponieważ używam szyfrowania klucza publicznego do logowania bez hasła. Jednak często używam do tego komputera na moim uniwersytecie, więc nie mam opcji używania mojego klucza prywatnego. Wprowadzanie mojego hasła 4 lub 5 razy jest denerwujące, aby uzyskać kilka okien terminala.

Jak mogę uzyskać wiele terminali za pomocą jednego połączenia?

epocholf
źródło

Odpowiedzi:

38

Wystarczy użyć ekranu GNU , jest świetny, ponieważ możesz rozpoczynać sesje zdalne i przywracać je, jeśli połączenie zostanie przerwane. Jest dostępny jako pakiet dla większości dystrybucji i może nawet być już zainstalowany w systemie uniwersyteckim.

Instrukcja pozwoli Ci dać wszystko, czego potrzebujesz, aby zacząć, domyślnie wszystkie komendy są poprzedzone Ctrl+A. Na przykład, aby wyświetlić pomoc ekranową, wystarczy nacisnąć, Ctrl+Aa następnie nacisnąć?

saschabeaumont
źródło
Od kilku lat jestem administratorem Linuksa i używam screena wiele razy dziennie.
Żaden serwer nie jest kompletny bez ekranu.
Gert M
2
Po kilku godzinach korzystania z ekranu nie mogę uwierzyć, że żyłem bez niego! Spędziłem 5 lat, robiąc to źle.
epochwolf
4

Spójrz na następujące dwa artykuły na temat udostępniania połączenia SSH:

http://fermiparadox.wordpress.com/2008/06/19/ssh-connection-sharing/
http://protempore.net/~calvins/howto/ssh-connection-sharing/

Zasadniczo, przeszukaj google w celu udostępniania połączenia ssh, a znajdziesz na nim kilka innych artykułów.

Evan
źródło
1
Ciekawy. Jedynym problemem jest to, że jeśli moje połączenie internetowe zostanie zerwane, nie będę w stanie połączyć się ponownie bez usuwania gniazda. Jeśli nie mogę się połączyć, jak wejść na serwer, aby usunąć gniazdo?
epochwolf
Nie musisz usuwać gniazda na serwerze, to tylko udostępnianie po stronie klienta. Więc raz uruchomisz `ssh foo 'i utworzy ono gniazdo na tej samej maszynie, na której uruchomiłeś polecenie ssh foo. Serwer widzi wiele loginów na osobnych tty, więc nie zna żadnych innych niż „normalne” oddzielne loginy.
David Gardner
3

Możliwe, że możesz użyć przekierowania X, aby otworzyć wiele zdalnych xtermów na lokalnym pulpicie.

John Fouhy
źródło
Serwer nie ma zainstalowanego X11. Ponadto nie działa w systemie Windows, na którym nie mogę zainstalować serwera X.
epochwolf
Serwer Linux nie musi mieć X11 do uruchamiania aplikacji graficznych wyświetlanych na lokalnym pulpicie. Ponadto Cygwin X-Server działa świetnie do uruchamiania takich rzeczy jak Firefox z mojego domowego Linux-a (bez X-a na moim home-boxie) i pokazują się dobrze na moim lokalnym laptopie z systemem Windows.
shapr
2

Nie podajesz żadnego istotnego powodu, dla którego nie możesz używać kluczy prywatnych z innych systemów. Wygeneruj je dla poszczególnych komputerów i dodaj odpowiednie klucze do uprawnionych hostów

Nadal używaj ekranu.

żelazna żaba
źródło
Czy używanie klucza prywatnego na komputerze publicznym jest dobrym pomysłem? Zwłaszcza biorąc pod uwagę, że nie umieściłem hasła na kluczu?
epochwolf
1
Nie używałbyś tego samego klucza, którego używasz gdzie indziej - wygenerowałbyś nowy klucz (z hasłem) i dodałbyś jego klucz publiczny do pliku autoryzowanego_kluczy na swoim serwerze. Nadaj mu nazwę „przenośny klucz” i wyjmij go z uprawnionych kluczy, jeśli podejrzewasz, że mógł zostać przejęty.
Neall
2

Możesz także spojrzeć na byobu . To ulepszona wersja Screena i uważam, że jest to projekt Ubuntu. Ale jest standardowo wyposażony w Ubuntu 9.10 i nowsze.

Zwykle nadal używam Screen, ale chciałem wspomnieć o tej nowszej alternatywie.

3dinfluence
źródło
1

Jeśli wszystko, czego używasz, to dostosowywanie kilku plików, być może zainteresuje Cię również multitail .

Evan
źródło
Ciekawy link. Właśnie wspomniałem o moim najczęstszym użyciu. Muszę także przełączać się między vimem a bashem, aby znaleźć ścieżki rzeczy.
epochwolf
1

Jedną z niewymienionych funkcji ekranu jest „odłączenie” ekranu i będzie on uruchamiał wszystkie polecenia uruchomione na tym zestawie ekranów. Po odłączeniu ekranu możesz się wylogować, a wszystko to wciąż się odstręcza, nawet po wylogowaniu. Uruchomię ekran startowy, a następnie wykonam kilka poleceń c, aby utworzyć nowe „ekrany podrzędne”. Mogę się między nimi przełączać i rozpocząć długo działającą kompilację lub przetwarzanie danych i mieć pewność, że moje gówniane połączenie VPN nie spowoduje, że wszystko zginie.

Po wylogowaniu możesz zalogować się ponownie i użyć „screen -R”, który ponownie przywiąże cię do twoich sesji sessoins.

Paul Leclerc
źródło
0

Aby użyć screenz ssh, wpisz

ssh -t <user>@<server> screen -r

( źródło ). man ssh:

-t Wymusza alokację pseudoterminalną. Można to wykorzystać do wykonania dowolnych programów ekranowych na zdalnym komputerze, co może być bardzo przydatne, np. Przy wdrażaniu usług menu. Wiele opcji -t wymusza alokację tty, nawet jeśli ssh nie ma lokalnego tty.

Jarosław Nikitenko
źródło