Удобное Удаленное Управление Консолью Linux Из Windows

Итак, друзья, определенная часть нас (людей) так или иначе испытывает потребность в удаленном управлении компьютером (обычно сервером) на Linux (метод может работать и на BSD, и на Mac OS X, но я не пробовал это) с помощью ssh. Другая подгруппа использует Windows в качестве ОС на основной рабочей машине.

Моя статья посвящена пересечению этих подмножеств.

Преимущества, ради которых все затеяно: 1. Поддержание связи при потере связи.

Этот пункт для меня самый важный и сыграл решающую роль в построении такой системы.

Дело в том, что я живу в общежитии с очень и очень нестабильным интернетом, и у меня обрывы связи (в плохие дни) могут происходить каждую минуту.

А шпаклевка требует последовательности действий, чтобы каждый раз переподключаться 2. Сохранение сеанса, включая текущий каталог, историю команд и вывод. Часто единственная задача при подключении к серверу — зайти в тот же каталог и написать git pull. Чтобы не запоминать каждый раз путь к этой директории, нужно сохранить сессию 3. Терминал поддерживает вкладки.

Самое главное, что этот терминал также можно использовать для консоли cmd, PS и git bash. Таким образом, вам не придется держать открытыми несколько разных терминалов.

4. Плюсы tmux: несколько окон в одном сеансе и разделение

Удобное удаленное управление консолью Linux из Windows

Рецепт успеха будет включать в себя несколько пунктов:

  1. Терминал – КонЭму code.google.com/p/conemu-maximus5
  2. Менеджер сеансов — tmux tmux.sourceforge.net
  3. Коннектор между клиентом и сервером — mosh mosh.mit.edu
  4. Запуск приложений *nix под Windows — cygwin www.cygwin.com
Также для проведения всех манипуляций нам также понадобится аналогичный набор программного обеспечения:
  1. Putty или другой ssh-клиент;
  2. Удаленный сервер (я использую Ubuntu на AWS, хотя это не имеет большого значения).



Что мы получим в результате?

В результате мы получим терминал с возможностью доступа к удаленной консоли.

В случае потери соединения (сбой интернета, смена IP-адреса, смена маршрутизации, нестабильное соединение, зависание ноутбука и т. д.) повторно подключаться не придется, и при повторном подключении не будет потерян рабочий контекст. Теперь подробно.



Конфигурация

Мы будем настраивать нашу систему шаг за шагом, начиная с удаленного сервера.

Подключаемся к нему по ssh и устанавливаем.



Тмукс

Тмукс - сессионный менеджер, что называется, экран на стероидах.

В моем дистрибутиве уже есть tmux, но если нет, то установите его:

  
  
  
  
  
  
   

sudo apt-get install tmux

Или собираем из источников:

git clone git://git.code.sf.net/p/tmux/tmux-code tmux cd tmux sh autogen.sh .

/configure && make

Краткая шпаргалка по tmux Скопировано из http://habrahabr.ru/post/126996/ Очень хороший способ запустить tmux: tmux прикрепить || 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, добавьте следующее:

новая сессия set-window-option -g режим-мышь включен установить -g предел истории 25000
В первой строке написано, что при попытке подключения, если активной сессии нет, создается новая.

Вторая строка включает поддержку мыши, а третья задает размер истории.



Мош

Мош в нашей связи есть система, обеспечивающая бесперебойную связь.

Если соединение потеряно, программа ждет восстановления соединения и продолжает работу с того места, где остановилась.

Это также помогает при медленном/нестабильном соединении.

Установите из исходного кода, чтобы получить версию, поддерживающую все необходимые функции:

git clone https://github.com/keithw/mosh.git cd mosh/ sudo apt-get build-dep mosh .

/autogen.sh && .

/configure && make sudo make install

Никакой специальной настройки не требуется.



Сигвин

Теперь перейдем к клиентской части.

Сигвин — альтернативная реализация linux api, позволяющая использовать linux-утилиты из-под windows. Установил с официального сайта ( https://cygwin.com/install.html ).

У меня версия x86_64. Загрузить и установить.

При выборе пакетов (помимо основных) нужно проверить mosh и ssh:

Удобное удаленное управление консолью Linux из Windows

Никакой настройки не требуется.



КонЭму

Последний пункт - КонЭму .

Замечательный терминал для Windows. Поддерживает множество функций, таких как:

  1. вкладки и разделенные экраны;
  2. работа с консольными приложениями с использованием консольного API;
  3. гибкая настройка и управление;
  4. работа с цветами;
  5. .

    и многое другое, подробнее об этом терминале вы можете прочитать в статья разработчик.

ConEmu устанавливается с официального сайта.

Скачайте, установите (или распакуйте), запустите.

При первом запуске оставьте галочки на месте.

Откройте настройки с помощью Win+Alt+P. Нас интересует пункт Задачи.

Вот как выглядит задача запуска cygwin:

Удобное удаленное управление консолью Linux из Windows

Создайте такой элемент для себя, но, возможно, вам придется заменить путь на путь установки:

C:\cool\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -

Сохраняем, закрываем настройки, в выпадающем меню рядом с плюсиком в правом верхнем углу выбираем наш cygwin. Теперь нам нужно подключиться по ssh к нашему серверу.

Моя команда выглядит так:

ssh -i key2014.pem -p 22

key2014.pem — мой закрытый ключ доступа ssh к экземпляру в aws. Возможно, стоит скопировать его с диска Windows (который смонтирован в /cygdrive) в корневую папку.

Следующий шаг — подключение через Mosh:

mosh <username>@<hostname> --ssh=\"ssh -i key2014.pem -p 22\" -p 55505 -- tmux a

55505 — UDP-порт, который я ранее открыл для входящих соединений в правилах безопасности в админ-панели aws. Теперь все подключения будут осуществляться только через него (кроме первоначального установления соединения - оно идет через 22 порт).

tmux а — команда, которая выполняется при подключении к серверу (привязка к работающей tmux-сессии).

Давай проверим.

Работает? Поразительнй! Последняя задача — создать новую задачу в ConEmu.

Удобное удаленное управление консолью Linux из Windows

Конкретно:

C:\cool\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico /bin/bash -l -c "mosh <username>@<hostname> --ssh=\"ssh -i key2014.pem -p 22\" -p 55505 -- tmux a"

Думаю, все ясно.

Обратите внимание на косую черту перед кавычками.

В них различают степень вложенности кавычек.

Ну, пожалуй, это все.

Теперь, когда мы хотим подключиться к серверу, запускаем ConEmu, нажимаем на стрелочку рядом со знаком плюсика и выбираем нашу Task.

Добавление

Еще одно упрощение, которое я использую, заключается в том, что я добавил все задачи, которые мне нужно вызывать, непосредственно из Totcmd:

Удобное удаленное управление консолью Linux из Windows

Обычный cmd:

Удобное удаленное управление консолью Linux из Windows

Подключение к aws:

Удобное удаленное управление консолью Linux из Windows

P.S. Предлагаю всем, кто дочитал эту статью, высказать свои предположения, что еще можно включить в эту схему.

Спасибо за внимание.

П.

П.

С.

Эта статья представляет собой компиляцию других статей, взятых из разных мест, и моих собственных разработок.

Единственная статья, которую я помню, это http://xakep.ru/komfort-shell/ Теги: #linux #*nix #Windows #Администрирование сервера #Настройка Linux #Системное администрирование Linux #ssh #tmux #удобство #ConEmu #mosh

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.