- Как использовать Conspy для просмотра и управления удаленными виртуальными консолями Linux в режиме реального времени
- Установка конспай в линукс
- Тестовая среда, используемая для шпионажа
- Использование conspy для отображения и управления tty
- Смотреть Conspy в действии
- Использование конспирации с Putty
- Ограничения сговора
- Краткое содержание
- Удобное удаленное управление консолью linux из-под Windows
- Что мы получим в итоге?
- Конфигурация
Как использовать Conspy для просмотра и управления удаленными виртуальными консолями Linux в режиме реального времени
Компьютерные сети позволили конечным пользователям взаимодействовать друг с другом несколькими способами. Они также предоставили способ выполнять удаленную работу без хлопот и затрат, связанных с поездкой (или, возможно, прогулкой до ближайшего офиса).
Недавно я обнаружил программу под названием conspy в стабильных репозиториях Debian и был рад узнать, что она доступна для Fedora и ее производных. .
Он позволяет пользователю видеть, что отображается на виртуальной консоли Linux, а также отправлять на нее нажатия клавиш в режиме реального времени. В некотором смысле вы можете думать о conspy как о VNC, с тем отличием, что conspy работает в текстовом режиме (таким образом, экономя ресурсы и позволяя также поддерживать серверы только с CLI) и в верхней части. из всего этого не требует установки службы на стороне сервера перед использованием.
Тем не менее, вам нужно только убедиться, что есть сетевое подключение к удаленному компьютеру, и вы научитесь любить сговор.
Установка конспай в линукс
В Debian 8 и его производных conspy доступен непосредственно из репозиториев, поэтому установить его так же просто, как:
# aptitude update && aptitude install conspy
В то время как в CentOS 7 и других дистрибутивах на основе Fedora сначала необходимо включить репозиторий Repoforge:
1. Перейдите на страницу http://pkgs.repoforge.org/rpmforge-release и найдите последнюю версию репозитория (по состоянию на сентябрь 2015 г. последним пакетом является rpmforge-release-0.5). .3-1.el7.rf.x86_64.rpm) и скачайте его:
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
2. Установите пакет репозитория:
# rpm –Uvh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
3. Затем установите сам пакет conspy:
# yum update && yum install conspy
Тестовая среда, используемая для шпионажа
Чтобы увидеть, как работает conspy, мы подключимся ssh к серверу Debian 8 [IP 192.168.0.25] (используя Terminal или gnometer, например), где демон ssh прослушивает порт 11222:
Рядом с нашим терминалом мы разместим окно Virtualbox, которое будет использоваться для отображения ttys. Помните, что вам нужно будет нажимать вправо от Ctrl + F1 до F6, чтобы переключаться между tty внутри окна Virtualbox, и Ctrl + Alt + F1 через F6 для переключения между консолями на реальном (т.е. не виртуализированном) сервере.
Использование conspy для отображения и управления tty
Чтобы запустить conspy, подключитесь к удаленному серверу по ssh, а затем просто введите:
за которым следует номер tty (от 1 до 6). Вы заметите, что цвет фона вашего Терминала изменится. Мы будем использовать команду tty, чтобы определить имя файла терминала, подключенного в данный момент к стандартному вводу. Если tty не указан в качестве аргумента, активная в данный момент виртуальная консоль открывается и отслеживается.
Обратите внимание, что после запуска программы как:
Отображается первый терминал (tty1) вместо pts/0 (начальный псевдотерминал для ssh-соединения):
Чтобы выйти, нажмите Esc три раза подряд.
Смотреть Conspy в действии
Чтобы лучше увидеть конспирологию в действии, найдите минутку и посмотрите следующие скринкасты:
1. Нажатия клавиш отправляются с клиента на удаленный tty:
2. Содержимое телетайпа отображается в клиенте так, как оно отображается в удаленном телекоммуникационном терминале:
В приведенных выше видео можно увидеть пару интересных вещей:
- Вы можете запускать команды или вводить текст в псевдотерминале, и они будут отображаться в удаленной консоли, и наоборот.
- Нет необходимости запускать серверную программу на удаленном сервере, в отличие от другого программного обеспечения технической поддержки, которое требует, чтобы кто-то запускал службу для удаленного подключения.
- Conspy также позволяет визуализировать в режиме реального времени выходные данные таких программ, как top или ping, которые постоянно обновляются или изменяются с очень небольшой задержкой. Это включает в себя программы на основе ncurses, такие как htop — мониторинг процессов Linux:
Если вы хотите только просматривать удаленный терминал, а не отправлять нажатия клавиш или команды, просто запустите conspy с переключателем -v (только просмотр).
Использование конспирации с Putty
Если вы используете ноутбук или настольный компьютер с Windows для работы, вы все равно можете воспользоваться скрытым шпионажем. После входа в удаленную систему с помощью Putty, известного ssh-клиента для Windows, вы по-прежнему можете запустить conspy, как описано выше, как показано на следующем скриншоте:
Это показывает, что вы можете использовать эту программу независимо от клиентского программного обеспечения ssh, которое вы используете для удаленного подключения к серверу.
Ограничения сговора
Несмотря на свои приятные особенности, у конспи есть и некоторые ограничения, которые следует учитывать:
- Он позволяет просматривать, подключаться или управлять только реальными терминалами (tty), а не псевдотерминалами (pts/X).
- Он может отображать не-ASCII-символы (á, é, ñ, чтобы назвать несколько примеров) неправильно или вообще не отображать:
Для запуска требуются права суперпользователя (либо root, либо через sudo).
Краткое содержание
В этом руководстве мы познакомили вас с conspy, бесценным инструментом для управления удаленными терминалами, который потребляет очень мало системных ресурсов.
Я надеюсь, что вы найдете время, чтобы установить и опробовать эту замечательную утилиту, и настоятельно рекомендую вам добавить эту статью в закладки, потому что, по моему скромному мнению, это один из тех инструментов, которые должны быть частью набора навыков каждого системного администратора.
Я с нетерпением жду ваших отзывов об этой статье. Не стесняйтесь, напишите мне, используя форму ниже. Вопросы также всегда приветствуются.
Удобное удаленное управление консолью linux из-под Windows
2014-11-19 в 7:49, admin , рубрики: linux, mosh, ssh, tmux, windows, администрирование linux-систем, Настройка Linux, Серверное администрирование, удобство
Итак, друзья, некоторое подмножество нас (людей) так или иначе испытавает необходимость удаленного управления компьютером (как правило, сервера) на linux (способ может сработать и в BSD, и в Mac OS X, но я не пробовал) при помощи ssh. Другое подмножество использует Windows в качестве ОС на основной рабочей машине. К пересечению этих подмножеств обращена моя статья.
Как же получить комфортный remote access к bash из-под Windows?
Рецепт успеха будет включать несколько пунктов:
- Терминал — ConEmu code.google.com/p/conemu-maximus5;
- Менеджер сессий — tmux tmux.sourceforge.net;
- Коннектор между клиентом и сервером — mosh mosh.mit.edu;
- Запуск *nix приложений под windows — cygwin www.cygwin.com;
Так же для проведения всех манипуляций нам также понадобится подобный набор софта:
- Putty или другой ssh клиент;
- Удаленный сервер (я использую ubuntu на aws, хотя это не имеет существенного значения).
Что мы получим в итоге?
В итоге мы получим терминал с возможностью доступа к удаленной консоли. При обрыве соединения (обрыве интернета, смене ip-адреса, изменении маршрутизации, неустойчивом соединении, засыпании ноутбука etc) не придется переподключаться, а при переподключении не будет теряться контекст работы.
Конфигурация
Настраивать нашу систему мы будем поэтапно, начнем с удаленного сервера. Подключаемся к нему по ssh и ставим…
tmux
Tmux — менеджер сессий, как говорится, screen на стероидах. К моему дистрибутиву tmux уже шел в комплекте, а если нет, то ставим его:
Или же собираем из исходников:
git clone git://git.code.sf.net/p/tmux/tmux-code tmux cd tmux sh autogen.sh ./configure && make
Очень хороший способ запустить tmux:
tmux attach || tmux new — делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый.
После этого вы попадаете в полноценную консоль.
Ctrl+b d — отключиться. (Точно так же вы отключитесь, если прервётся соединение. Как подключиться обратно и продолжить работу — см. выше.)
В одной сессии может быть сколько угодно окошек:
Ctrl+b c — создать окошко;
Ctrl+b 0. 9 — перейти в такое-то окошко;
Ctrl+b p — перейти в предыдущее окошко;
Ctrl+b n — перейти в следующее окошко;
Ctrl+b l — перейти в предыдущее активное окошко (из которого вы переключились в текущее);
Ctrl+b & — закрыть окошко (а можно просто набрать exit в терминале).
В одном окошке может быть много панелей:
Ctrl+b % — разделить текущую панель на две, по вертикали;
Ctrl+b » — разделить текущую панель на две, по горизонтали (это кавычка, которая около Enter, а не Shift+2);
Ctrl+b →←↑↓ — переходить между панелями;
Ctrl+b x — закрыть панель (а можно просто набрать exit в терминале).
Недостаток — непривычным становится скроллинг:
Ctrl+b PgUp — вход в «режим копирования», после чего:
PgUp, PgDown — скроллинг;
q — выход из «режима копирования».
В конфиг, который находится в ~/.tmux.conf, добавляем следующее:
new-session
set-window-option -g mode-mouse on
set -g history-limit 25000
В первой строчке значится, что при попытке подключения, если нет активной сессии, создаётся новая. Вторая строчка включает поддержку мыши, а третья задаёт размер истории.
mosh
Mosh в нашей связке — это система, которая обеспечивает бесперебойность соединения. При обрыве соединения программа ждет, пока connectivity восстановится и продолжает работу с места остановки. Так же помогает и при медленном/нестабильном соединении.
Устанавливаем из исходников, чтобы получить версию, которая поддерживает все нужные фичи:
git clone https://github.com/keithw/mosh.git cd mosh/ sudo apt-get build-dep mosh ./autogen.sh && ./configure && make sudo make install
Специальная конфигурация не требуется.
Cygwin
Теперь переходим к клиентской части.
Cygwin — альтернативная реализация linux api, которая позволяет использовать linux утилиты из-под windows. Ставится с официального сайта (https://cygwin.com/install.html). У меня стоит версия x86_64. Скачиваем, ставим.
При выборе пакетов (помимо основных) нужно отметить mosh и ssh:
Конфигурация не требуется.
ConEmu
Последний пункт — ConEmu. Замечательный терминал под windows. Поддерживает кучу возможностей, таких как:
- вкладки и split-scren’ы;
- работа с консольными приложениями, использующими консольное API;
- гибкая настройка и управление;
- работа с цветами;
- … и многое другое, подробно про этот терминал можно почитать в статье разработчика.
ConEmu ставится с официального сайта. Скачиваем, ставим (или распаковываем), запускаем. При первом запуске оставляем галочки стоять на местах. Открываем настройки по Win+Alt+P. Нас интересует пункт Tasks.
Вот как выглядит задача запуска cygwin:
Создайте такой пункт у себя, при этом, вам, возможно, придется заменить путь на ваш путь установки:
C:coolcygwin64binmintty.exe -i /Cygwin-Terminal.ico -
Сохраняем, закрываем настройки, выбираем наш cygwin в выпадающем меню рядом с плюсиком в правом верхнем углу.
Теперь нам нужно добиться подключения по ssh к нашему серверу.
У меня команда выглядит так:
key2014.pem — мой ssh приватный ключ доступа к инстансу в aws. Возможно, его стоит скопировать с диска windows (который монтируется в /cygdrive) в корневую папку.
Следующий этап — подключение через Mosh:
mosh @ --ssh="ssh -i key2014.pem -p 22" -p 55505 -- tmux a
55505 — UDP порт, который я предварительно открыл для входящих соединений в правилах безопасности в админке aws. Теперь все соединения будут вестись только через него (помимо начального установления связи — оно идёт через 22 порт).
tmux a — команда, которая выполняется при подключении к серверу (attach к работающей сессии tmux).
Проверяем. Работает? Великолепно! Последняя задача — создать новый Task в ConEmu.
C:coolcygwin64binmintty.exe -i /Cygwin-Terminal.ico /bin/bash -l -c "mosh @ --ssh="ssh -i key2014.pem -p 22" -p 55505 -- tmux a"
Думаю, всё понятно. Обратите внимание на слеши перед кавычками. Они отличают степень вложенности кавычек.
Ну вот, пожалуй и всё. Теперь, когда мы хотим подключиться к серверу, запускаем ConEmu, тыкаем по стрелочке рядом с плюсиком и выбираем наш Task.
Дополнение
Еще одно упрощение, которое я использую — я добавил все необходимые мне Task’и для вызова напрямую из Totcmd:
P. S.
Предлагаю всем, дочитавшим эту статью, высказывать предложения, что еще такого можно включить в эту схему. Спасибо за внимание.