Эта статья даст краткий обзор mosh и почему вы должны использовать его вместо ssh. Вы также научитесь устанавливать и использовать mosh.
Для входа в удаленную систему мы использовали telnet. Из-за серьезных уязвимостей безопасности telnet его заменил ssh.
SSH позволяет пользователям входить в удаленные системы с/без пароля, но с помощью закрытого ключа и открытого ключа. Основным преимуществом SSH является его шифрование. Это позволяет пользователю общаться с удаленной системой, не опасаясь подслушивания или взлома.
Недостатки SSH
Проще говоря, работа ssh – это TCP-соединение зашифрованных пакетов.
SSH отправляет пакеты между локальной и удаленной системами точно так же, как telnet, но содержимое пакета шифруется. В середине нет буферизации и обработки. Даже введенные вами символы отправляются в удаленную систему, а затем удаленная система отправляет свой ответ (который содержит символ, набранный для отображения на экране) в локальную систему.
«Он просто отправляет/получает зашифрованные пакеты»
Но что происходит, когда сеть отключена или работает очень медленно? TCP-соединение будет разорвано, и локальная система останется висеть в воздухе без каких-либо ошибок. Это не типичная замороженная система Linux, а просто замороженный терминал с отключенным SSH-соединением.
Возможно, у вас были проблемы с ssh в одной из следующих ситуаций.
- Ваше сетевое соединение отключено. Ваш ssh сеанс ничего не покажет. Когда вы наберете в оболочке, вы заметите, что ничего не происходит. И тогда вы проверите значок Интернет/Wi-Fi.
- Когда у вас медленное интернет-соединение, такая же ситуация возникнет. Символы, которые вы вводите в локальной системе, могут появиться через несколько секунд, а в худшем – даже через минуты.
- Когда вы неактивны в течение длительного периода времени, иногда SSH перестает работать, даже если ваш компьютер не находился в режиме ожидания, а сетевое соединение было активным.
Подводя итог, можно сказать, что SSH обеспечивает высокую безопасность, но мало удобен в соединениях с высокой задержкой. Вы можете использовать команду nohup в Linux, чтобы продолжить выполнение команд даже после разрыва соединения SSH, но это не очень хорошее решение. Ты знаешь что лучше? mosh!
Mosh: SSH без проблем с подключением
![Избавьтесь от проблем с сетевым подключением в SSH с помощью Mosh](https://andreyex.ru/wp-content/uploads/2019/05/Izbavtes-ot-problem-s-setevym-podklyucheniem-v-SSH-s-pomoshhyu-Mosh.webp)
Mosh обозначает MObile SHell . Это дает простое решение всех проблем, упомянутых выше. Используется метод, аналогичный буферизации и синхронизации элементов (объектов) с использованием протокола SSP (State-Synchronization Protocol). И для передачи пакетов он использует UDP, который является протоколом без установления соединения.
Чтобы не изобретать велосипед, mosh использует ssh для аутентификации. Таким образом, вам не нужно создавать новые пары ключей или пользователей и тому подобное. Таким образом, все преимущества безопасности, которые есть у ssh , также связаны с mosh. Это также означает, что у вас должна быть работающая настройка SSH как в локальной, так и в удаленной системе.
Установите mosh на Ubuntu и другой дистрибутив Linux
Если у вас не установлен и не настроен ssh, изучите основы SSH и включите SSH в Ubuntu или любой другой Linux, которую вы используете.
Убедившись, что у вас есть работающая настройка SSH, установка mosh является простой задачей. Пакет, который вам нужно установить, одинаков как для локальных, так и для удаленных систем.
Чтобы установить mosh в дистрибутивах Linux на основе Ubuntu или Debian, вы можете использовать следующие команды, одну за другой:
sudo apt update sudo apt install mosh
Mosh доступен во всех основных дистрибутивах Linux. Используйте менеджер пакетов вашего дистрибутива, чтобы установить его.
После того, как вы закончили установку mosh, все готово на клиентской/локальной стороне. На удаленной стороне (то есть на сервере) вы должны выполнить простую настройку.
Настройка mosh на удаленном сервере
Помните ту часть, в которой мы сказали, что mosh использует UDP? По умолчанию mosh использует UDP-порты 60000-61000. Поэтому, если у вас есть брандмауэр в удаленной системе, вы должны переписать правило брандмауэра для этих портов следующим образом. UFW менеджер брандмауэра.
sudo ufw allow 60000:61000/udp
Давай соединяться через mosh
На данный момент у нас есть работающий SSH, mosh, который установлен в обеих системах, и правило брандмауэра, которое разрешает трафик UDP на портах 60K-61K на удаленном сервере.
Чтобы использовать mosh, это так же просто, как показано ниже
mosh destroyer@andreyex.com
Да уж! Мы знаем. Это так просто, как ssh.
Но что, если мне нужно указать порт ssh, отличный от порта по умолчанию, или использовать специфические параметры ssh. Вам просто нужно передать « ssh option [аргумент] » в опцию –ssh.
Например, нам нужно подключиться к ssh, работающему через порт 2222 на удаленном сервере. Это можно сделать следующим образом.
mosh destroyer@andreyex.com --ssh="ssh -p 2222"
Вот и все системы связаны. Теперь, чтобы понять всю мощь mosh, попробуйте выключить и снова включить сетевое соединение. Вы можете видеть, что mosh все еще работает. Как это круто!
Мы надеемся, вам понравился этот урок на Mosh. С тех пор, как мы обнаружили Mosh, перестали использовать ssh для подключения к удаленным серверам. Как насчет вас? Вам понравился Mosh или вы все еще предпочитаете SSH? Делитесь своими взглядами.