Як на сервері Linux використовуються декілька терміналів за один ssh-з'єднання?


15

Я часто виявляю декілька ssh-з'єднань, щоб одночасно переглядати кілька файлів журналу tail -f.

Це не проблема, коли я вдома, оскільки я використовую шифрування відкритого ключа для входу без пароля. Однак я часто використовую комп'ютер у своєму університеті, щоб зробити це, щоб не мати можливості використовувати свій приватний ключ. Мені стає прикро вводити мій пароль 4 або 5 разів, щоб отримати кілька вікон терміналів.

Як я можу отримати кілька терміналів за одне з'єднання?

Відповіді:


38

Просто використовуйте екран GNU , це чудово, оскільки ви можете запустити віддалені сесії та відновити їх, якщо ваше з'єднання перестане. Він доступний як пакет для більшості дистрибутивів і навіть може бути вже встановлений у вашій університетській системі.

Керівництво дасть вам все , що вам потрібно , щоб почати роботу, за замовчуванням всі команди передує Ctrl+A. Наприклад, щоб відкрити екранну допомогу, просто натисніть, Ctrl+Aа потім натисніть?


Я декілька років був адміністратором Linux і використовую екран багато, багато разів на день.

Жоден сервер не завершений без екрана.
Герт М

2
Після використання екрану протягом останніх кількох годин я не можу повірити, що я жив без нього! Я провів 5 років, роблячи це неправильно.
epochwolf

11

екран дозволяє мати декілька терміналів і більше (наприклад, можливість від'єднання та повторного приєднання до сеансу).

Деякі нотатки, які допоможуть вам рухатись:

Ctrl-a c   create
Ctrl-a d   detach
screen -r  reattach
Ctrl-a a   toggle
Ctrl-a "   list

І деякі рекомендують прочитати:


4

Подивіться наступні дві статті про спільний доступ до SSH:

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

В основному, виконайте пошук у Google при спільному використанні з'єднання ssh, і ви знайдете купу інших статей про нього.


1
Цікаво. Одне питання полягає в тому, що якби мій підключення до Інтернету було припинено, я не зміг би знову підключитися без видалення сокета. Якщо я не можу підключитися, як мені потрапити на сервер, щоб видалити сокет?
epochwolf

Не потрібно видаляти сокет на сервері, це лише спільний доступ до клієнта. Отже, ви запускаєте `ssh foo 'один раз, і це створює сокет на тій же машині, на якій ви запустили команду ssh foo. Сервер бачить кілька входів на окремих ttys, тому він не знає, що відрізняється від "звичайних" окремих входів.
Девід Гарднер

3

Можливо, ви можете використовувати переадресацію X для відкриття декількох віддалених xterms на вашому локальному робочому столі.


На сервері не встановлено X11. Крім того, не працює в системі Windows, на яку я не можу встановити X-сервер.
epochwolf

Сервер Linux не повинен мати X11 для запуску графічних програм, які відображаються на вашому локальному робочому столі. Крім того, Cygwin X-Server чудово працює для запуску таких речей, як Firefox, з мого домашнього вікна Linux (без X працює на моєму домашньому вікні), і вони добре відображаються на моєму локальному ноутбуці Windows.
вересня

2

Ви не даєте переконливих причин, чому ви не можете використовувати приватні ключі від інших систем. Створіть їх на машині та додайте відповідні ключі до санкціонованих_хостів

Все-таки використовуйте екран.


Чи корисне використання приватного ключа на загальнодоступному комп’ютері? Тим більше, враховуючи, що я не поставив пароль на ключ?
epochwolf

1
Ви б не використовували той самий ключ, який ви використовуєте в іншому місці - ви б створили новий ключ (із парольною фразою) та додали його відкритий ключ до файлу санкціонованих ключів на вашому сервері. Назвіть це щось на кшталт "portablekey" і вийміть його з дозволених ключів, якщо ви думаєте, що це може бути порушено.
Нелл

2

Ви також можете поглянути на byobu . Це вдосконалена версія Screen, і я вважаю, що це проект Ubuntu. Але це стандартно з Ubuntu 9.10 та новішими.

Я, як правило, все ще використовую Screen, хоча за звичкою, але хотів згадати цю нову альтернативу.


1

Якщо все, для чого ви користуєтесь, - це підключення декількох файлів, вас також може зацікавити багатоповерхівка .


Цікаве посилання. Я щойно згадав про своє найпоширеніше використання. Мені також потрібно переключитися між vim та bash, щоб шукати шляхи для речей.
epochwolf

1

Однією з невідомих функцій екрану є "від'єднання" екрана, і він буде продовжувати виконувати всі команди, які ви виконуєте в цьому наборі екранів. Як тільки екран знімається, ви можете вийти з системи, і все це відключається, навіть після виходу з системи. Я запускаю екран, а потім виконую кілька команд c, щоб створити нові "підкрески". Я можу перемикатися між ними і запускати деяку тривалу компіляцію чи обробку даних і бути впевненим, що мій хитрий VPN-зв’язок виграв, тому що з ним все вмирає.

Після виходу з системи ви можете увійти в систему і скористатися 'screen -R', який знову приєднає вас до існуючих екранів.


0

Для використання screenз ssh, типу

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

( джерело ). man ssh:

-t Сила псевдотермінального розподілу. Це може бути використано для виконання довільних екранних програм на віддаленій машині, що може бути дуже корисно, наприклад, при реалізації служб меню. Опції з декількома параметрами змушують розподіляти tty, навіть якщо ssh не має локальних tty.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.