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

Как сгенерировать SSH-ключ для Linux: пошаговая инструкция

Илья Ушаков
Илья Ушаков
Технический писатель
02 ноября 2022 г.
5363
5 минут чтения
Средний рейтинг статьи: 5

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

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

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

Генерация SSH-ключей в Linux

Чтобы настроить безопасное удаленное подключение к серверу, необходимо для начала сгенерировать пару ключей SSH на личном компьютере. Выполнять генерацию будем на операционной системе Ubuntu 20.04. А поможет нам в этом специальная утилита ssh-keygen, которая предназначена для создания и управления ключами. 

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

ssh-keygen -t rsa

Флаг -t указывает на тип ключа при его создании. В нашем случае это RSA, но также допустимы и другие. Это dsa, ecdsa или ed25519.

Также стоит отметить флаги -p и -l, которые можно использовать при необходимости. Первый позволяет изменить ключевое слово (passphrase) к приватному ключу, а второй показывает отпечаток публичного ключа. 

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

2. После выполнения команды запустится генерация ключей и терминал выведет следующее сообщение: 

Image3

На данном этапе программа ssh-keygen предлагает пользователю ввести новый путь для хранения генерируемой пары ключей. Закрытый ключ будет записан как id_rsa, а публичный — id_rsa.pub. Чтобы пропустить этот этап и использовать каталог по умолчанию, достаточно нажать кнопку «Enter».

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

Image2

Служба предлагает пользователю перезаписать уже существующие ключи на новые. Но стоит иметь в виду, что при перезаписи пользователь не сможет больше выполнять подключение к серверу используя старую пару ключей. При подтверждении данной операции они будут уничтожены. Чтобы отказаться от перезаписи, достаточно ввести в строку терминала «n».

3. Следующим сообщением в терминале будет:

Image1

Служба предложит пользователю ввести кодовую фразу для дополнительной безопасности генерируемого приватного ключа. Ее нужно будет вводить каждый раз, когда пользователь захочет получить доступ к нему на личном компьютере. Ключевая фраза обеспечит дополнительную защиту при попытке хищения и использования приватного ключа. Это необязательная, но рекомендуемая процедура. Чтобы пропустить данный этап и следующий, в котором пользователь подтверждает указанную ключевую фразу, нужно нажать «Enter» два раза.

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

Image4

Оно означает, что пара SSH-ключей благополучно сгенерирована. Единственное, что осталось сделать — это скопировать открытый ключ на удаленный сервер. Он выгружается в отдельный для этого файл — ~/.ssh/authorized_keys. После этого можно использовать сетевой протокол в полной мере и выполнять удаленное подключение по SSH в Linux.

Авторизация на сервере с использованием SSH-ключей

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

cat ~/.ssh/id_rsa.pub

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

Image5

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

Image6

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

Для этого переходим в терминал и вводим следующее:

ssh root@[IP-адрес сервера]

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

Если все выполнено верно, то после выполнения команды произойдет удаленное подключение к серверу. Если оно выполняется впервые, то система может выдать предупреждение о том, что компьютеру не удается распознать удалённый хост. Чтобы исправить это, нужно ввести «Yes» и нажать кнопку «Enter». После этого компьютер запомнит его.

Заключение

В данной инструкции был рассмотрен весь процесс генерации пары SSH-ключей для Linux. Кроме того, мы рассказали как их правильно использовать и как настроить удаленное подключение к облачному серверу на примере Timeweb Cloud.  

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону