Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Генерация SSH-ключей в Linux
Чтобы настроить безопасное удаленное подключение к серверу, необходимо для начала сгенерировать пару ключей SSH на личном компьютере. Выполнять генерацию будем на операционной системе Ubuntu 20.04. А поможет нам в этом специальная утилита ssh-keygen, которая предназначена для создания и управления ключами.
1. В первую очередь откроем терминал и воспользуемся следующей командой, чтобы сгенерировать SSH-ключи:
Флаг -t указывает на тип ключа при его создании. В нашем случае это RSA, но также допустимы и другие. Это dsa, ecdsa или ed25519.
Также стоит отметить флаги -p и -l, которые можно использовать при необходимости. Первый позволяет изменить ключевое слово (passphrase) к приватному ключу, а второй показывает отпечаток публичного ключа.
Подробнее про публичный и приватный ключ можно прочитать в инструкции по генерации SSH-ключей для Windows.
2. После выполнения команды запустится генерация ключей и терминал выведет следующее сообщение:
На данном этапе программа ssh-keygen предлагает пользователю ввести новый путь для хранения генерируемой пары ключей. Закрытый ключ будет записан как id_rsa, а публичный — id_rsa.pub. Чтобы пропустить этот этап и использовать каталог по умолчанию, достаточно нажать кнопку «Enter».
Также может возникнуть ситуация, в которой пользователь уже генерировал пару SSH-ключей ранее. В таком случае система выведет в консоль сообщение, продемонстрированное на картинке ниже.
Служба предлагает пользователю перезаписать уже существующие ключи на новые. Но стоит иметь в виду, что при перезаписи пользователь не сможет больше выполнять подключение к серверу используя старую пару ключей. При подтверждении данной операции они будут уничтожены. Чтобы отказаться от перезаписи, достаточно ввести в строку терминала «n».
3. Следующим сообщением в терминале будет:
Служба предложит пользователю ввести кодовую фразу для дополнительной безопасности генерируемого приватного ключа. Ее нужно будет вводить каждый раз, когда пользователь захочет получить доступ к нему на личном компьютере. Ключевая фраза обеспечит дополнительную защиту при попытке хищения и использования приватного ключа. Это необязательная, но рекомендуемая процедура. Чтобы пропустить данный этап и следующий, в котором пользователь подтверждает указанную ключевую фразу, нужно нажать «Enter» два раза.
4. По завершении генерации ключей в терминал будет выведено сообщение, продемонстрированное на картинке ниже.
Оно означает, что пара SSH-ключей благополучно сгенерирована. Единственное, что осталось сделать — это скопировать открытый ключ на удаленный сервер. Он выгружается в отдельный для этого файл — ~/.ssh/authorized_keys. После этого можно использовать сетевой протокол в полной мере и выполнять удаленное подключение по SSH в Linux.
Авторизация на сервере с использованием SSH-ключей
Чтобы авторизоваться по SSH-ключу в Linux,**** необходимо в первую очередь добавить открытый ключ на сервер. Сначала копируем его, используя команду терминала:
Результатом выполнения команды будет сгенерированный ранее открытый ключ, как показано на картинке ниже.
Если вы пользуетесь облачными серверами Simple-Server, то можете добавить публичный ключ в разделе «SSH-ключи» в панели управления. Для этого переходим в соответствующий раздел и вставляем публичный SSH-ключ, как показано на картинке ниже.
Добавив публичный ключ, можно переходить к удаленному подключению к серверу.
Для этого переходим в терминал и вводим следующее:
ssh root@[IP-адрес сервера]Система попросит пользователя ввести ключевую фразу для приватного ключа, если она была указана на этапе генерации.
Если все выполнено верно, то после выполнения команды произойдет удаленное подключение к серверу. Если оно выполняется впервые, то система может выдать предупреждение о том, что компьютеру не удается распознать удалённый хост. Чтобы исправить это, нужно ввести «Yes» и нажать кнопку «Enter». После этого компьютер запомнит его.
Нужен сервер для практики? Закажите VPS на Simple-Server — root-доступ, NVMe, DDoS-защита и поддержка 24/7.