SSH — это сетевой протокол, обеспечивающий удаленное подключение и управление операционной системой в безопасном режиме, в том числе и Linux. Зачастую он используется для удаленного управления серверами через терминал.
Существует несколько методов удаленного подключения к серверу по протоколу SSH. Среди них: использование пары SSH-ключей, аутентификация при помощи пароля, вход по схеме Kerberos или основанный на хосте. По умолчанию используется метод аутентификации при помощи пароля. Однако он имеет достаточно низкий уровень безопасности в сравнении с другими перечисленными методами.
В представленной инструкции будет подробно рассмотрен первый вариант авторизации из списка выше, а именно генерация 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. После выполнения команды запустится генерация ключей и терминал выведет следующее сообщение:
На данном этапе программа ssh-keygen предлагает пользователю ввести новый путь для хранения генерируемой пары ключей. Закрытый ключ будет записан как id_rsa, а публичный — id_rsa.pub. Чтобы пропустить этот этап и использовать каталог по умолчанию, достаточно нажать кнопку «Enter».
Также может возникнуть ситуация, в которой пользователь уже генерировал пару SSH-ключей ранее. В таком случае система выведет в консоль сообщение, продемонстрированное на картинке ниже.
Служба предлагает пользователю перезаписать уже существующие ключи на новые. Но стоит иметь в виду, что при перезаписи пользователь не сможет больше выполнять подключение к серверу используя старую пару ключей. При подтверждении данной операции они будут уничтожены. Чтобы отказаться от перезаписи, достаточно ввести в строку терминала «n».
3. Следующим сообщением в терминале будет:
Служба предложит пользователю ввести кодовую фразу для дополнительной безопасности генерируемого приватного ключа. Ее нужно будет вводить каждый раз, когда пользователь захочет получить доступ к нему на личном компьютере. Ключевая фраза обеспечит дополнительную защиту при попытке хищения и использования приватного ключа. Это необязательная, но рекомендуемая процедура. Чтобы пропустить данный этап и следующий, в котором пользователь подтверждает указанную ключевую фразу, нужно нажать «Enter» два раза.
vds
4. По завершении генерации ключей в терминал будет выведено сообщение, продемонстрированное на картинке ниже.
Оно означает, что пара SSH-ключей благополучно сгенерирована. Единственное, что осталось сделать — это скопировать открытый ключ на удаленный сервер. Он выгружается в отдельный для этого файл — ~/.ssh/authorized_keys
. После этого можно использовать сетевой протокол в полной мере и выполнять удаленное подключение по SSH в Linux.
Чтобы авторизоваться по SSH-ключу в Linux, необходимо в первую очередь добавить открытый ключ на сервер. Сначала копируем его, используя команду терминала:
cat ~/.ssh/id_rsa.pub
Результатом выполнения команды будет сгенерированный ранее открытый ключ, как показано на картинке ниже.
Если вы пользуетесь облачными серверами Timeweb Cloud, то можете добавить публичный ключ в разделе «SSH-ключи» в панели управления. Для этого переходим в соответствующий раздел и вставляем публичный SSH-ключ, как показано на картинке ниже.
Добавив публичный ключ, можно переходить к удаленному подключению к серверу.
Для этого переходим в терминал и вводим следующее:
ssh root@[IP-адрес сервера]
Система попросит пользователя ввести ключевую фразу для приватного ключа, если она была указана на этапе генерации.
Если все выполнено верно, то после выполнения команды произойдет удаленное подключение к серверу. Если оно выполняется впервые, то система может выдать предупреждение о том, что компьютеру не удается распознать удалённый хост. Чтобы исправить это, нужно ввести «Yes» и нажать кнопку «Enter». После этого компьютер запомнит его.
Запустите свой VDS/VPS с Linux за минуту
В данной инструкции был рассмотрен весь процесс генерации пары SSH-ключей для Linux. Кроме того, мы рассказали как их правильно использовать и как настроить удаленное подключение к облачному серверу на примере Timeweb Cloud.