Tmate — мгновенно поделитесь своим терминалом с кем угодно и где угодно
Существует множество популярных программ для совместного использования удаленного рабочего стола (таких как Teamviewer, Guacamole, TigerVNC и т. д.), которые вы можете использовать, когда вам нужно предоставить общий доступ к своему экрану коллегам или друзьям. Эти программы поделятся всем вашим экраном с другими. Но если вы хотите предоставить общий доступ только к Терминалу, вы можете просто использовать Tmate. На самом деле это ответвление Tmux, терминального мультиплексора, который позволяет использовать несколько программ в одном терминале. Оба они могут быть установлены в одной системе одновременно. Tmate — это что-то вроде Teamviewer для вашего терминала.
Для тех, кому интересно, Tmate установит безопасное соединение через SSH с веб-сайтом tmate.io и сгенерирует случайный URL-адрес для каждого сеанса. Вы можете поделиться URL-адресом с кем-то, кому вы доверяете, и он сможет использовать Терминал так же, как и свой собственный Терминал, пока соединение активно. Лучше всего подходит для совместной работы над общими проектами, отладки проекта с командой разработчиков или получения технической поддержки по удаленной сети. Tmate поддерживает все популярные операционные системы, включая системы GNU/Linux, Mac OS X и BSD.
В этом уроке я объясню, как установить и использовать Tmate в Unix-подобных операционных системах.
Tmate — мгновенно поделитесь своим терминалом с кем угодно и где угодно
Установка Тмате
Для Arch Linux и его производных, таких как Antergos, Manjaro Linux, Tmate доступен в AUR, поэтому вы можете установить его с помощью вспомогательных программ AUR, таких как Yay . .
yay -S tmate
Для Fedora выполните следующую команду, чтобы установить Tmate.
sudo dnf install tmate
В Ubuntu и его производных, таких как Linux Mint, вы можете установить их, используя следующий PPA.
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:tmate.io/archive
sudo apt-get update
sudo apt-get install tmate
В версиях Ubuntu 18.04 LTS включите репозиторий юниверсов и установите Tmate, как показано ниже.
sudo add-apt-repository universe
sudo apt install tmate
В FreeBSD:
pkg install tmate
OpenBSD:
pkg_add tmate
Настроить SSH
Прежде чем начать использовать Tmate, нам необходимо создать пару ключей SSH. Потому что программа tmate устанавливает безопасное SSH-соединение с tmate.io, используя локальную пару ключей SSH.
Давайте создадим пару ключей SSH, используя команду:
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sk/.ssh/id_rsa):
Created directory '/home/sk/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sk/.ssh/id_rsa.
Your public key has been saved in /home/sk/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:DL3+rYrYtXYHxyFfDSRAsz4470wAQ+V/iW+sd5/fnA0 sk@ubuntuserver
The key's randomart image is:
+---[RSA 2048]----+
| ....+.... |
| . o o .. |
| + o . o |
| = =..... .|
| S =+oo |
| . +.=+ |
| o oo+ E |
| o o.*.+o .o=|
| . o.oo*+.. +B|
+----[SHA256]-----+
Если вы не создадите, вы увидите следующее уведомление в нижней части окна терминала.
[Tmate] Reconnecting... (SSH keys not found. Run 'ssh-keygen' to create keys and try again.)
Использование Tmate
После того, как вы создали пару ключей SSH, запустите Tmate, выполнив следующую команду из своего терминала:
tmate
Если вы ввели парольную фразу при создании пары ключей SSH, вам может потребоваться ввести ее для установления сеанса Tmate.
После того, как вы начали сеанс Tmate, поделитесь идентификатором соединения со всеми, с кем вы хотите поделиться своим экраном. Вы можете поделиться им с любым количеством людей, которым доверяете. Им не обязательно находиться в одной сети или использовать одну и ту же ОС. Им даже не обязательно устанавливать tmate или tmux.
Вот как выглядят сеансы Tmate.
Сессия Tmate
Как вы видите на скриншоте выше, в нижней части экрана указан идентификатор сеанса SSH (строка случайных символов). Просто скопируйте и поделитесь им с другими, чтобы подключиться. Обратите внимание, что этот идентификатор исчезнет через несколько секунд. Однако вы все равно можете просмотреть идентификаторы сеансов с помощью команды:
tmate show-messages
Пример вывода будет:
Fri Aug 11 17:18:48 2017 [tmate] Connecting to ssh.tmate.io...
Fri Aug 11 17:18:49 2017 [tmate] Note: clear your terminal before sharing readonly access
Fri Aug 11 17:18:49 2017 [tmate] web session read only: https://tmate.io/t/ro-UVgrzHg2BVanPXZnt6JtlpU3V
Fri Aug 11 17:18:49 2017 [tmate] ssh session read only: ssh ro-s8EGu5v1WessJXBuUj7SR2adg@sg2.tmate.io
Fri Aug 11 17:18:49 2017 [tmate] web session: https://tmate.io/t/LVWgMSX2wNhBLdrLfxtcX00rk
Fri Aug 11 17:18:49 2017 [tmate] ssh session: ssh S2Rd6LAv9sXIXqInw2RUrr31m@sg2.tmate.io
Как вы видите в приведенном выше выводе, вы можете либо поделиться терминалом через сеанс SSH, либо через веб-сеанс, используя соответствующие идентификаторы сеанса. Вы также можете поделиться либо сеансом только для чтения, либо сеансом чтения и записи.
Очень, очень важное примечание: Помните, что если вы указали идентификаторы сеансов чтения и записи (SSH или Web), пользователь может сделать что-нибудь. Потому что вы только что предоставили ему доступ к вашей системе с правами sudo. Итак, Я настоятельно рекомендую вам предоставить идентификаторы сеансов только для чтения.
При совместном использовании сеанса только для чтения вы не хотите, чтобы удаленные пользователи могли просматривать другие идентификаторы сеансов чтения и записи. Итак, просто очистите терминал, прежде чем передавать идентификаторы сеансов пользователям.
Подключайтесь через сеансы SSH
Для тех, кто хочет поделиться терминалом через сеансы SSH, дайте идентификатор сеанса SSH удаленным пользователям.
Например, удаленные пользователи должны ввести следующую команду для доступа к сеансу Tmate только для чтения из своей системы.
ssh ro-s8EGu5v1WessJXBuUj7SR2adg@sg2.tmate.io
В сеансе только для чтения удаленные пользователи могут просматривать ваш терминал. Они не могут выполнять какие-либо команды.
Чтобы поделиться сеансом чтения и записи, используйте команду:
ssh S2Rd6LAv9sXIXqInw2RUrr31m@sg2.tmate.io
Теперь удаленные пользователи могут получить доступ к вашему терминалу в режиме чтения и записи. Это означает, что они могут запустить любую команду на вашем терминале. Все команды, которые они вводят в удаленном сеансе, также можно просмотреть с вашего локального терминала.
Подключайтесь через веб-сессии
Для тех, кто хочет поделиться Терминалом через веб-браузер, просто дайте URL-адрес другим пользователям для подключения.
Скажем, например, чтобы поделиться чтением и записью, я бы дал этот URL своим коллегам https://tmate.io/t/LVWgMSX2wNhBLdrLfxtcX00rk.
Когда они введут указанный выше URL-адрес, они увидят следующий экран.
Веб-сеанс Tmate
Еще раз предупреждаю вас: не давайте никому идентификаторы сеансов чтения и записи, если в этом нет абсолютной необходимости. Делитесь сеансами чтения и записи только с доверенными лицами.
Рекомендуем прочитать:
- Reptyr – перемещение запущенного процесса с одного терминала на другой, не закрывая его
Работа в сеансе tmate точно такая же, как и tmux. Вы можете думать о tmate как об обратном SSH-туннеле, доступном откуда угодно. Чтобы выйти из сеанса, введите exit. Более подробную информацию можно найти на страницах руководства.
man tmate
Ресурс:
- Сайт Tmate
Рекомендуем прочитать:
- Совместное использование терминалов и управление ими в режиме реального времени из веб-браузера