Итак, друзья, определенная часть нас (людей) так или иначе испытывает потребность в удаленном управлении компьютером (обычно сервером) на Linux (метод может работать и на BSD, и на Mac OS X, но я не пробовал это) с помощью ssh. Другая подгруппа использует Windows в качестве ОС на основной рабочей машине.
Моя статья посвящена пересечению этих подмножеств.
Преимущества, ради которых все затеяно: 1. Поддержание связи при потере связи.
Этот пункт для меня самый важный и сыграл решающую роль в построении такой системы.
Дело в том, что я живу в общежитии с очень и очень нестабильным интернетом, и у меня обрывы связи (в плохие дни) могут происходить каждую минуту.
А шпаклевка требует последовательности действий, чтобы каждый раз переподключаться 2. Сохранение сеанса, включая текущий каталог, историю команд и вывод. Часто единственная задача при подключении к серверу — зайти в тот же каталог и написать git pull. Чтобы не запоминать каждый раз путь к этой директории, нужно сохранить сессию 3. Терминал поддерживает вкладки.
Самое главное, что этот терминал также можно использовать для консоли cmd, PS и git bash. Таким образом, вам не придется держать открытыми несколько разных терминалов.
4. Плюсы tmux: несколько окон в одном сеансе и разделение
Рецепт успеха будет включать в себя несколько пунктов:
- Терминал – КонЭму 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-адреса, смена маршрутизации, нестабильное соединение, зависание ноутбука и т. д.) повторно подключаться не придется, и при повторном подключении не будет потерян рабочий контекст. Теперь подробно.
Конфигурация
Мы будем настраивать нашу систему шаг за шагом, начиная с удаленного сервера.Подключаемся к нему по 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:
Никакой настройки не требуется.
КонЭму
Последний пункт - КонЭму .Замечательный терминал для Windows. Поддерживает множество функций, таких как:
- вкладки и разделенные экраны;
- работа с консольными приложениями с использованием консольного API;
- гибкая настройка и управление;
- работа с цветами;
- .
и многое другое, подробнее об этом терминале вы можете прочитать в статья разработчик.
Скачайте, установите (или распакуйте), запустите.
При первом запуске оставьте галочки на месте.
Откройте настройки с помощью Win+Alt+P. Нас интересует пункт Задачи.
Вот как выглядит задача запуска cygwin:
Создайте такой элемент для себя, но, возможно, вам придется заменить путь на путь установки: 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.
Конкретно: 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:Обычный cmd:
Подключение к aws:
P.S. Предлагаю всем, кто дочитал эту статью, высказать свои предположения, что еще можно включить в эту схему.
Спасибо за внимание.
П.
П.
С.
Эта статья представляет собой компиляцию других статей, взятых из разных мест, и моих собственных разработок.
Единственная статья, которую я помню, это http://xakep.ru/komfort-shell/ Теги: #linux #*nix #Windows #Администрирование сервера #Настройка Linux #Системное администрирование Linux #ssh #tmux #удобство #ConEmu #mosh
-
Этика Начальника Манежа
19 Oct, 24 -
Что Не Так С Avast.ru?
19 Oct, 24 -
Обновление Тем Для Систем Linux
19 Oct, 24 -
Декоратор Cached_Property
19 Oct, 24