Поиск по сайту:

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


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

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

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

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

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

Что делает ключи SSH безопасными?

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

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

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

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

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

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

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

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

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

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

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

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

ssh dave@sulaco

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

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

exit

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

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

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

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

ssh-keygen

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

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

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

Ключи SSH генерируются и сохраняются для вас.

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

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

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

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

ssh-copy-id dave@sulaco

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

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

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

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

Подключение с использованием SSH-ключей

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

ssh dave@sulaco

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

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

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

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

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

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

ssh dave@sulaco

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

Никаких паролей, но усиленная безопасность

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

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