Относитесь серьезно к кибербезопасности и используйте SSH-ключи для доступа к удаленному входу. Это более безопасный способ подключения, чем пароли. Мы покажем вам, как создавать, устанавливать и использовать ключи SSH в Linux.
Что не так с паролями?
Безопасная оболочка (SSH) - это зашифрованный протокол, используемый для входа в учетные записи пользователей на удаленном Linux или Unix-подобный компьютеры. Обычно такие учетные записи пользователей защищаются паролями. Когда вы входите в систему на удаленном компьютере, вы должны указать имя пользователя и пароль для учетной записи, в которую вы входите.
Пароли являются наиболее распространенным средством защиты доступа к вычислительным ресурсам. Несмотря на это, безопасность на основе паролей имеет свои недостатки. Люди выбирают слабые пароли, обмениваются паролями, используют один и тот же пароль в нескольких системах и так далее.
Ключи SSH намного безопаснее, и после настройки их так же легко использовать, как и пароли.
Что делает ключи SSH безопасными?
Ключи SSH создаются и используются парами. Два ключа связаны и криптографически безопасны. Один из них - ваш открытый ключ, а другой - ваш закрытый ключ. Они привязаны к вашей учетной записи. Если несколько пользователей на одном компьютере используют ключи SSH, каждый из них получит свою пару ключей.
Ваш закрытый ключ устанавливается в вашу домашнюю папку (обычно), а открытый ключ устанавливается на удаленном компьютере или компьютерах, к которым вам потребуется доступ.
Ваш закрытый ключ должен храниться в безопасности. Если он доступен для других, вы находитесь в таком же положении, как если бы они узнали ваш пароль. Разумная - и настоятельно рекомендуемая - мера предосторожности заключается в том, чтобы ваш закрытый ключ был зашифрован на вашем компьютере с помощью надежной кодовая фраза .
Открытый ключ можно свободно передавать без ущерба для вашей безопасности. По проверке открытого ключа невозможно определить, что это за закрытый ключ. Закрытый ключ может шифровать сообщения, которые может расшифровать только закрытый ключ.
Когда вы делаете запрос на подключение, удаленный компьютер использует свою копию вашего открытого ключа для создания зашифрованного сообщения. Сообщение содержит идентификатор сеанса и другие метаданные. Только компьютер, у которого есть закрытый ключ - ваш компьютер - может расшифровать это сообщение.
Ваш компьютер получает доступ к вашему закрытому ключу и расшифровывает сообщение. Затем он отправляет собственное зашифрованное сообщение обратно на удаленный компьютер. Помимо прочего, это зашифрованное сообщение содержит идентификатор сеанса, полученный с удаленного компьютера.
Теперь удаленный компьютер знает, что вы должны быть тем, кем себя называете, потому что только ваш закрытый ключ может извлечь идентификатор сеанса из сообщения, отправленного на ваш компьютер.
Убедитесь, что у вас есть доступ к удаленному компьютеру
Убедитесь, что вы можете удаленно подключиться к удаленному компьютеру и войти в него . Это доказывает, что ваше имя пользователя и пароль имеют действительную учетную запись на удаленном компьютере и что ваши учетные данные верны.
Не пытайтесь ничего делать с ключами SSH, пока не убедитесь, что вы можете использовать SSH с паролями для подключения к целевому компьютеру.
В этом примере человек с учетной записью пользователя назвал
Дэйв
входит в систему на компьютере с именем
Howtogeek
. Они собираются подключиться к другому компьютеру под названием
Сулако
.
Они вводят следующую команду:
ssh dave @ sulaco
У них спрашивают пароль, они вводят его, и они подключаются к Sulaco. Их командная строка изменяется, чтобы подтвердить это.
Это все, что нам нужно. Итак, пользователь
Дэйв
может отключиться от
Сулако
с
Выход
команда:
Выход
Они получают сообщение об отключении, и их командная строка возвращается к
Дэйв @ howtogeek
.
СВЯЗАННЫЕ С: Как подключиться к SSH-серверу из Windows, macOS или Linux
Создание пары ключей SSH
Эти инструкции были протестированы в дистрибутивах Linux Ubuntu, Fedora и Manjaro. Во всех случаях процесс был идентичным, и не было необходимости устанавливать какое-либо новое программное обеспечение ни на одной из тестовых машин.
Чтобы сгенерировать ключи SSH, введите следующую команду:
ssh-keygen
Начнется процесс генерации. Вас спросят, где вы хотите хранить свои SSH-ключи. Нажмите клавишу Enter, чтобы принять расположение по умолчанию. Разрешения на папку обеспечат ее только для вашего использования.
Теперь вам будет предложено ввести кодовую фразу. Мы настоятельно рекомендуем вам ввести здесь кодовую фразу. И помните, что это такое! Вы можете нажать Enter, чтобы не вводить кодовую фразу, но это не лучшая идея. Парольная фраза, состоящая из трех или четырех несвязанных слов, соединенных вместе, будет очень надежной парольной фразой.
Вам будет предложено ввести ту же парольную фразу еще раз, чтобы убедиться, что вы ввели то, что, как вы думали, набрали.
Ключи SSH генерируются и хранятся для вас.
Вы можете игнорировать отображаемый «случайный фрагмент». Некоторые удаленные компьютеры могут показывать вам свое случайное изображение при каждом подключении. Идея состоит в том, что вы узнаете, изменится ли случайное изображение, и с подозрением относитесь к соединению, потому что это означает, что ключи SSH для этого сервера были изменены.
Установка открытого ключа
Нам нужно установить ваш открытый ключ на
Сулако
, удаленный компьютер, чтобы он знал, что открытый ключ принадлежит вам.
Мы делаем это с помощью
ssh-copy-id
команда. Эта команда устанавливает соединение с удаленным компьютером как обычное
ssh
команда, но вместо того, чтобы позволить вам войти в систему, она передает публичный ключ SSH.
ssh-copy-id дэйв @ sulaco
Хотя вы не входите в систему на удаленном компьютере, вы все равно должны пройти аутентификацию с помощью пароля. Удаленный компьютер должен определить, какой учетной записи пользователя принадлежит новый ключ SSH.
Обратите внимание, что пароль, который вы должны указать здесь, является паролем учетной записи пользователя, в которую вы входите. Это не пароль, который вы только что создали.
Когда пароль будет проверен,
ssh-copy-id
передает ваш открытый ключ на удаленный компьютер.
Вы вернетесь в командную строку вашего компьютера. Вы не остались подключенными к удаленному компьютеру.
Подключение с помощью ключей SSH
Следуем предложению и попробуем подключиться к удаленному компьютеру.
ssh dave @ sulaco
Поскольку для процесса подключения потребуется доступ к вашему закрытому ключу, а также поскольку вы защитили свои SSH-ключи с помощью парольной фразы, вам необходимо будет указать свою парольную фразу, чтобы соединение могло продолжиться.
Введите кодовую фразу и нажмите кнопку «Разблокировать».
После того, как вы ввели парольную фразу в сеансе терминала, вам не нужно будет вводить ее снова, пока у вас открыто окно терминала. Вы можете подключаться и отключаться от любого количества удаленных сеансов, без повторного ввода ключевой фразы.
Вы можете поставить галочку напротив опции «Автоматически разблокировать этот ключ при входе в систему», но это снизит вашу безопасность. Если вы оставите свой компьютер без присмотра, любой сможет подключиться к удаленным компьютерам, имеющим ваш открытый ключ.
После ввода кодовой фразы вы подключаетесь к удаленному компьютеру.
Чтобы еще раз проверить процесс от начала до конца, отключите
Выход
команду и повторно подключитесь к удаленному компьютеру из того же окна терминала.
ssh dave @ sulaco
Вы будете подключены к удаленному компьютеру без пароля или ключевой фразы.
Без паролей, но усиленная безопасность
Эксперты по кибербезопасности говорят о том, что называется трениями безопасности. Это небольшая боль, с которой вам нужно смириться, чтобы получить дополнительную защиту. Обычно требуется несколько дополнительных шагов, чтобы принять более безопасный метод работы. И большинству людей это не нравится. На самом деле они предпочитают более низкий уровень безопасности и отсутствие трения. Это человеческая природа.
С ключами SSH вы получаете повышенную безопасность и удобство. Это беспроигрышный вариант.