LinuxКак сделать

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

Linux ноутбук показывает приглашение оболочки
Фатмавати Ахмад Заенури / Shutterstock.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  ssh dave @ sulaco 

ssh dave @ sulaco в окне терминала

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

Пользователь Дэйв подключен к Sulaco, используя SSH и пароль

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

  выход 

пользователь Дэйв отключен от sulaco

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

СВЯЗАННЫЕ: Как подключиться к SSH-серверу из Windows, MacOS или Linux

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

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

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

  SSH-серийник 

ssh-keygen в окне терминала

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

Подтверждение места хранения ключа ssh в окне терминала

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

Запрашивать пароль в окне терминала

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

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

Генерация ключей завершена и случайное изображение отображается в окне терминала

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

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

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

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

  ssh-copy-id Дэйв @ Сулако 

ssh-copy-id Дэйв @ Сулако

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

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

ssh-copy-id с запросом пароля в окне терминала

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

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

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

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

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

  ssh dave @ sulaco 

ssh dave @ sulaco в окне терминала

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

диалоговое окно запроса пароля

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

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

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

Как только вы введете вашу фразу-пароль, вы подключитесь к удаленному компьютеру.

подключение удаленного компьютера в окне терминала

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

  ssh dave @ sulaco 

Подключение и отключение ключа ssh в окне терминала

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

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

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

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

Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone