Вверх

Как создать и установить ключи SSH из оболочки Linux

4 февраля 2021 |

Как создать и установить ключи SSH из оболочки Linux

Linux laptop showing a shell prompt Фатмавати Ахмад Зэнури / Shutterstock.com

Относитесь к кибербезопасности серьезно и используйте ключи SSH для доступа к удаленному входу. Это более безопасный способ подключения, чем пароли. Мы покажем вам, как создавать, устанавливать и использовать ключи SSH в Linux.

Что не так с паролями?

Безопасная оболочка (SSH) — это зашифрованный протокол, используемый для входа в учетные записи пользователей на удаленных Linux или Unix-подобных компьютерах. Обычно такие учетные записи пользователей защищаются паролями. Когда вы входите в систему на удаленном компьютере, вы должны указать имя пользователя и пароль для учетной записи, в которую вы входите.

Пароли являются наиболее распространенным средством защиты доступа к вычислительным ресурсам. Несмотря на это, у безопасности на основе паролей есть свои недостатки. Люди выбирают ненадежные пароли, обмениваются паролями, используют один и тот же пароль в нескольких системах и т. Д.

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

Что обеспечивает безопасность ключей SSH?

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

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

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

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

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

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

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

Убедитесь, что у вас есть доступ к удаленному компьютеру

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

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

В этом примере человек с учетной записью пользователя по имени dave входит в систему на компьютере с именем howtogeek. Они собираются подключиться к другому компьютеру под названием Sulaco.

Они вводят следующую команду:

ssh dave @ sulaco

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

user dave connected to sulaco using ssh and a password

Это все, что нам нужно. Таким образом, пользователь dave может отключиться от Sulaco с помощью команды выхода:

exit

user dave disconnected from sulaco

Они получают сообщение о разъединении, и их приглашение командной строки возвращается к dave @ howtogeek.

Создание пары ключей SSH

Эти инструкции были протестированы в дистрибутивах Linux Ubuntu, Fedora и Manjaro. Во всех случаях процесс был идентичным, и не было необходимости устанавливать какое-либо новое программное обеспечение ни на одной из тестовых машин.

Чтобы сгенерировать ключи SSH, введите следующую команду:

ssh-keygen

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

Теперь вам будет предложено ввести кодовую фразу. Мы настоятельно рекомендуем вам ввести здесь кодовую фразу. И помните, что это такое! Вы можете нажать Enter, чтобы не вводить кодовую фразу, но это не очень хорошая идея. Парольная фраза, состоящая из трех или четырех несвязанных слов, соединенных вместе, будет очень надежной парольной фразой.

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

SSH ключи создаются и сохраняются для вас.

Вы можете игнорировать отображаемый «случайный фрагмент». Некоторые удаленные компьютеры могут показывать вам свое случайное изображение при каждом подключении. Идея состоит в том, что вы узнаете, изменится ли случайное изображение, и с подозрением относитесь к соединению, потому что это означает, что ключи SSH для этого сервера были изменены.

Установка открытого ключа

Нам нужно установить ваш открытый ключ на Sulaco, удаленный компьютер, чтобы он знал, что открытый ключ принадлежит вам.

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

ssh-copy-id dave @ sulaco

ssh-copy-id dave@sulaco

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

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

ssh-copy-id with password prompt ina terminal window

После проверки пароля ssh-copy-id передает ваш открытый ключ на удаленный компьютер.

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

Подключение с помощью ключей SSH

Следуем предложению и попробуем подключиться к удаленному компьютеру.

ssh dave @ sulaco

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

passphrase request dialog box

Введите парольную фразу и нажмите кнопку «Разблокировать».

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

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

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

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

ssh dave @ sulaco

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

Нет паролей, но повышенная безопасность

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

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

Как создать и установить ключи SSH из оболочки Linux


Напишите пару строк: