Приведенное ниже руководство предоставит вам информацию о том, как включить ssh на Ubuntu 18.04 Linux. SSH расшифровывается как secure shell, которая позволяет шифровать удаленные логин-соединения между клиентом и сервером по небезопасной сети.

ubunty.jpg

Версии операционной системы и программного обеспечения

Операционная Система: – Ubuntu 18.04 Bionic Beaver

Программное обеспечение: – OpenSSH 7.5 или выше

Требования

Чтобы приступить к первоначальной настройке, нужно соблюсти все требования. Требуется привилегированный доступ к вашей системе Ubuntu как root или через sudo команду.

Конвенция

# – требует, чтобы данные команды linux выполнялись с правами root либо непосредственно от имени пользователя root, либо с помощью sudo команды;

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

Чтобы включить ssh в Ubuntu Linux, нам сначала нужно выполнить установку пакета SSH. Откройте терминал и введите команду:

$ sudo apt install ssh

ключи.png

Чтобы включить SSH на Убунту, сначала произведите настройку.

ssh-key.png

Настройка ssh в ubuntu не трудная. Убедитесь,что SSH-сервер запущен и работает, выполнив следующую команду. Ищите ключевое Active: active (running)слово . Нажмите q, если вам нужно вернуть приглашение командной строки:

$ service ssh

На этом этапе вы должны иметь возможность войти с этого хоста на любой другой сервер Ubuntu с поддержкой SSH. Возможна ssh авторизация по ключу. Например, чтобы войти на сервер с именем хоста ubuntu server в качестве пользователя linuxconfig, введите:

$ ssh linuxconfig@ubuntu

Важно! По умолчанию вы не сможете войти в систему с помощью удаленного подключения SSH в качестве root пользователя.

ssh клиент для ubuntu существет под любую ОС.

Включить / отключить SSH на Ubuntu

Возможен ssh доступ по ключу. В случае, если вам нужно временно отключить SSH на вашем хосте Ubuntu выполните:

$ sudo service ssh stop

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

image-5.png

Зачем нужны ключи SSH?

SSH – это защищенный протокол, используемый в качестве основного средства удаленного подключения к серверам Linux. Он обеспечивает текстовый интерфейс, порождая удаленную оболочку. После подключения все команды, которые вы вводите в локальном терминале, отправляются на удаленный сервер и выполняются там. Ssh генерация ключей всегда поможет.

Самый распространенный способ подключения к удаленному серверу Linux – это SSH. SSH расшифровывается как Secure Shell и обеспечивает безопасный и безопасный способ выполнения команд, внесения изменений и удаленной настройки служб. При подключении через SSH вы входите в систему с помощью учетной записи, существующей на удаленном сервере.

Как работает SSH

Когда вы подключаетесь через SSH, вы попадаете в сеанс оболочки, который представляет собой текстовый интерфейс, где вы можете взаимодействовать с вашим сервером. Во время сеанса SSH все команды, которые вы вводите в свой локальный терминал, отправляются через зашифрованный SSH-туннель и выполняются на вашем сервере linux.

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

Компьютер пользователя должен иметь SSH-клиент. Это часть программного обеспечения, которая знает, как общаться с помощью протокола SSH, и может быть предоставлена информация об удаленном хосте для подключения, имя пользователя для использования и учетные данные, которые должны быть переданы для аутентификации. Клиент также может указать определенные сведения о типе соединения, которое он хотел бы установить.

Как SSH аутентифицирует пользователей

Клиенты обычно аутентифицируются либо с помощью паролей (менее безопасных и не рекомендуемых), либо с помощью SSH-ключей, которые очень безопасны. Можно использовать виртуальный сервер или веб-сервер.

Логины паролей зашифрованы и легко понятны для новых пользователей. Ip адрес будет словлен автоматически. Однако автоматические боты и вредоносные пользователи часто повторно пытаются аутентифицироваться в учетных записях, разрешающих вход с использованием паролей, что может привести к нарушениям безопасности. По этой причине мы рекомендуем всегда настраивать аутентификацию на основе ключа SSH для большинства конфигураций.

SSH ключи – это соответствующий набор криптографических ключей, которые могут быть использованы для аутентификации. Каждый набор содержит открытый и закрытый ключи. Публичный ключ может быть передан свободно, без беспокойства, в то время как закрытый ключ должен быть бдительно защищен и никогда никому не раскрываться.

Для аутентификации с помощью SSH-ключей пользователь должен иметь пару SSH-ключей на своем локальном компьютере. На удаленном сервере открытый ключ должен быть скопирован в файл в домашнем каталоге пользователя ~/.ssh/authorized_keys. Этот файл содержит список открытых ключей, по одному на строку, которые разрешены для входа в эту учетную запись. Можно использовать дистрибутив.

Когда клиент подключается к хосту, желая использовать аутентификацию SSH-ключа, он информирует сервер об этом намерении и сообщает серверу, какой открытый ключ использовать. Затем сервер проверяет свой authorized_keys файл на наличие открытого ключа, генерирует случайную строку и шифрует ее с помощью открытого ключа. Это зашифрованное сообщение может быть расшифровано только с помощью соответствующего закрытого ключа. Сервер отправит это зашифрованное сообщение клиенту, чтобы проверить, действительно ли у него есть связанный закрытый ключ. Возможно, он использует VPS (VDS).

После получения этого сообщения клиент расшифрует его с помощью закрытого ключа и объединит случайную строку, которая обнаружена с ранее согласованным идентификатором сеанса. Затем он генерирует хэш MD5 этого значения и передает его обратно на сервер. Сервер уже имел исходное сообщение и идентификатор сеанса, поэтому он может сравнить хэш MD5, созданный этими значениями, и определить, что клиент должен иметь закрытый ключ.

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

Генерация и работа с SSH ключами

3.png

В этом разделе будет рассказано о том, как генерировать SSH-ключи на клиентской машине и распространять открытый ключ на серверы, где они должны использоваться. Это хороший раздел для начала, если вы ранее не генерировали ключи из-за повышенной безопасности, которую он обеспечивает для будущих подключений.

Генерация пары ключей SSH

Создание новой пары открытых и закрытых ключей SSH на вашем локальном компьютере – это первый шаг к аутентификации с помощью удаленного сервера без пароля. Если нет веской причины не делать этого, вы всегда должны аутентифицироваться с помощью SSH-ключей. Параметры задаёте вы, но есть база.

Для генерации SSH-ключей можно использовать ряд криптографических алгоритмов, включая RSA, DSA и ECDSA. Ключи RSA обычно предпочтительны и являются типом ключа по умолчанию.

Приглашение позволяет вам выбрать место для хранения вашего закрытого ключа RSA. Нажмите ENTER, чтобы оставить это значение по умолчанию, которое будет хранить их в .sshскрытом каталоге в домашнем каталоге вашего пользователя. Если оставить выбранное расположение по умолчанию, то ваш SSH-клиент сможет автоматически находить ключи.

Следующая подсказка позволяет ввести парольную фразу произвольной длины для защиты вашего закрытого ключа. По умолчанию вам придется вводить любую парольную фразу, заданную здесь, каждый раз, когда вы используете закрытый ключ, в качестве дополнительной меры безопасности. Не стесняйтесь нажимать ENTER, чтобы оставить это поле пустым, если вам не нужна парольная фраза. Однако имейте в виду, что это позволит любому, кто получит контроль над вашим закрытым ключом, войти на ваши серверы.

Если вы решите ввести парольную фразу, то при вводе ничего не будет отображаться. Это мера предосторожности.

Добавление ключей SSH к агенту SSH, чтобы избежать ввода парольной фразы

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

Чтобы избежать необходимости делать это повторно, вы можете запустить SSH-агент. Эта небольшая утилита хранит ваш закрытый ключ после того, как вы впервые ввели парольную фразу. Он будет доступен в течение всего времени вашей терминальной сессии, что позволит вам подключиться в будущем без повторного ввода парольной фразы.

Это также важно, если вам нужно переслать свои учетные данные SSH.

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

Вам нужно будет ввести свою парольную фразу (если она установлена). После этого ваш идентификационный файл будет добавлен в Агент, что позволит вам использовать свой ключ для входа в систему без необходимости повторного ввода парольной фразы.

Перенаправление ваших учетных данных SSH для использования на сервере

Если вы хотите иметь возможность подключаться без пароля к одному серверу из другого сервера, вам нужно будет переслать информацию о ключе SSH. Это позволит вам аутентифицироваться на другом сервере через сервер, к которому вы подключены, используя учетные данные на вашем локальном компьютере.

Для начала необходимо запустить SSH-агент и добавить к нему SSH-ключ (см. выше). После этого вам нужно будет подключиться к вашему первому серверу, используя эту -A опцию. Это перенаправит ваши учетные данные на сервер для данного сеанса. Отсюда вы можете подключиться по SSH к любому другому хосту, доступ к которому разрешен вашим SSH-ключом. Вы будете подключаться так, как если бы ваш личный SSH-ключ находился на этом сервере.

Использование Escape-кодов SSH для управления соединениями

Даже после установления сеанса SSH можно осуществлять контроль над соединением из терминала. Мы можем сделать это с помощью так называемых SSH escape-кодов, которые позволяют нам взаимодействовать с нашим локальным программным обеспечением SSH из сеанса.

Принудительное отключение от клиентской стороны (как выйти из застрявшего или замороженного сеанса)

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

Эти команды могут быть выполнены, начиная с ~ управляющего символа в сеансе SSH. Управляющие команды будут интерпретироваться только в том случае, если они являются первым, что вводится после новой строки, поэтому всегда нажимайте клавишу ENTER один или два раза, прежде чем использовать ее.

Одним из наиболее полезных элементов управления является возможность инициировать отключение от клиента. SSH-соединения обычно закрываются сервером, но это может быть проблемой, если сервер страдает от проблем или если соединение было нарушено. С помощью отключения на стороне клиента соединение может быть полностью закрыто от клиента.

Чтобы закрыть соединение с клиентом, используйте управляющий символ ~ с точкой. Если у вашего соединения возникли проблемы, вы, скорее всего, находитесь в том, что кажется застрявшим терминальным сеансом. Введите команды, несмотря на отсутствие обратной связи, чтобы выполнить отключение на стороне клиента:

ENTER

~

Соединение должно немедленно закрыться, возвращая вас к вашему локальному сеансу оболочки.

Размещение сеанса SSH в фоновом режиме

Одна из возможностей, которую это предоставляет, заключается в том, чтобы поместить сеанс SSH в фоновый режим. Для этого нам нужно ввести управляющий символ ~ , а затем выполнить обычную комбинацию клавиш для фона задачи (CTRL-z).

Это поместит соединение в фоновый режим, возвращая вас к вашему локальному сеансу оболочки. Чтобы вернуться к сеансу SSH, вы можете использовать обычные механизмы управления заданиями. Затем вы можете вывести любую из задач на передний план, используя индекс в первом столбце со знаком процента.

Вывод

Приведенные выше инструкции должны охватывать большую часть информации, необходимой большинству пользователей о SSH на ежедневной основе.

Вопрос-ответ

Я очень плохо знакома с git. Я следовала учебнику, и там человек генерирует ssh-ключи, это была моя первая встреча с ним. До этого я следовала команде, написанной в git, или добавляла ее непосредственно в JetBrains ide. Я знаю, что он должен шифровать соединение, но при загрузке на GitHub это означает, что я делаю свой код общедоступным. Тогда зачем шифрование? Почему идут все эти неприятности в cmd.

Ответ:

Зачем нам нужны SSH-ключи в git?

SSH-ключи идентифицируют пользователя, который взаимодействует с удаленным репозиторием git.

Я знаю, что он должен шифровать соединение, но при загрузке на GitHub это означает, что я делаю свой код общедоступным.

Не обязательно, что в GitHub есть частные репозитории. Кроме того, есть и другие хостинг-провайдеры.

Почему идут все эти неприятности в cmd.

С помощью SSH-аутентификации вам не нужно вводить свои учетные данные при взаимодействии с пультом дистанционного управления.