Як на сервері 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.