Как загрузить открытый ключ SSH на существующий VPS
AlexHost Использование SSH-ключей – один из самых безопасных и эффективных способов аутентификации. Если у вас есть существующий VPS и вы хотите перейти на использование SSH-ключей (или добавить новый ключ), это простой процесс, который повышает безопасность, позволяя входить в систему без пароля. В этом руководстве мы расскажем вам, как загрузить открытый ключ SSH на существующий VPS, чтобы обеспечить безопасный и простой вход в систему в будущем.
Зачем использовать ключи SSH?
Ключи SSH широко используются для защиты доступа к удаленным серверам. Они обладают рядом преимуществ по сравнению с традиционными паролями:
- Более надежная защита: SSH-ключи используют криптографическую аутентификацию, которую значительно сложнее взломать, чем даже сложные пароли.
- Вход без пароля: После настройки SSH-ключи позволяют входить на сервер без ввода пароля.
- Защита от атак методом перебора: Благодаря отсутствию паролей ключи SSH предотвращают атаки грубой силы, направленные на угадывание учетных данных.
Необходимые условия
Прежде чем приступить к работе, вам понадобятся:
- Доступ к существующему VPS: это означает, что вы можете войти в VPS по SSH, скорее всего, с паролем.
- Пара ключей SSH: Если у вас ее нет, мы расскажем, как ее сгенерировать.
- Базовые знания о командах SSH: Необходимо знакомство с интерфейсом командной строки (CLI).
Шаг 1: Генерация пары ключей SSH (если у вас их нет)
Если у вас еще нет пары ключей SSH на локальной машине, вы можете создать ее. Вот как это делается:
Откройте терминал на локальной машине (macOS или Linux) и выполните следующую команду:
Эта команда создаст 4096-битную пару ключей шифрования RSA. Во время процесса вам будет предложено сохранить ключ:
- Нажмите Enter, чтобы сохранить ключ в месте по умолчанию(~/.ssh/id_rsa).
- По желанию добавьте кодовую фразу для дополнительного уровня безопасности (рекомендуется) или нажмите Enter, чтобы пропустить этот шаг.
В результате этого процесса создаются два файла:
- id_rsa: ваш закрытый ключ (храните его в безопасности и никогда не передавайте).
- id_rsa.pub: Ваш открытый ключ (именно его вы будете загружать на сервер).
Далее отобразите открытый ключ, чтобы вы могли его скопировать:
ssh root@ваш_vps_ip
Скопируйте вывод (ваш открытый ключ), так как он понадобится вам на следующем этапе.
Шаг 2: Войдите в свой VPS
Чтобы добавить новый открытый ключ SSH на виртуальную машину, вам нужно войти в нее текущим способом (либо с паролем, либо с существующим ключом). Откройте терминал и выполните команду:
Замените your_vps_ip на фактический IP-адрес вашего VPS. Если вы входите в систему под другой учетной записью (не root), замените root на соответствующее имя пользователя.
Шаг 3: Создайте каталог .ssh (если он не существует)
После входа в систему убедитесь, что каталог.ssh существует для используемой вами учетной записи. Если он не существует, создайте его с помощью следующей команды:
Эта команда создает каталог .ssh и устанавливает правильные разрешения, чтобы только текущий пользователь мог получить к нему доступ.
Шаг 4: Добавьте открытый ключ в файл authorized_keys
Теперь, когда у вас есть каталог .ssh, вам нужно загрузить открытый ключ SSH на VPS, добавив его в файл authorized_keys. Этот файл содержит открытые ключи, которые разрешены для аутентификации на сервере.
- Откройте файл authorized_keys с помощью текстового редактора, например nano:
Если файл не существует, эта команда создаст его.
- Вставьте в файл свой открытый SSH-ключ (тот, который вы скопировали из id_rsa.pub ранее). Щелкните правой кнопкой мыши или воспользуйтесь функцией вставки в терминале, чтобы вставить ключ.
- Сохраните и закройте файл, нажав Ctrl X, затем Y, и нажмите Enter.
- Установите правильные разрешения на файл authorized_keys:
Этот шаг гарантирует, что файл будет доступен только текущему пользователю.
Шаг 5: Проверка входа по ключу SSH
После добавления SSH-ключа на VPS необходимо протестировать настройку, чтобы убедиться, что вы можете войти в систему без пароля.
- Выйдите из текущей сессии SSH, набрав:
- Теперь попробуйте снова войти в VPS, используя свой SSH-ключ:
Если все настроено правильно
- вы войдете в систему VPS без запроса пароля.
Шаг 6 (необязательный): Отключите проверку подлинности пароля
Для дополнительной безопасности вы можете отключить аутентификацию по паролю, разрешив доступ к VPS только пользователям с ключом SSH. Этот шаг необязателен, но рекомендуется для сред, где безопасность является приоритетом.
Чтобы отключить аутентификацию по паролю:
- Откройте файл конфигурации SSH на вашем VPS:
- Найдите следующие строки в конфигурационном файле и убедитесь, что они установлены следующим образом:
- Сохраните и закройте файл, нажав Ctrl X , затем Y, и нажмите Enter.
- Перезапустите службу SSH, чтобы применить изменения:
Теперь только пользователи с действительным SSH-ключом смогут войти на VPS.
Шаг 7: Управление несколькими SSH-ключами
Если вы управляете несколькими VPS или удаленными серверами, вы можете захотеть организовать свои SSH-ключи и настроить файл ~/.ssh/config для удобства. Вот пример конфигурации, позволяющей указать разные SSH-ключи для разных серверов:
Добавив это в файл конфигурации SSH(~/.ssh/config), вы можете просто войти в систему с помощью:
Заключение
Добавление открытого ключа SSH к существующему VPS значительно повышает безопасность вашего удаленного сервера и упрощает процесс входа в систему. Следуя этому руководству, вы сможете легко загрузить открытый ключ SSH и настроить VPS для входа без пароля. Для дополнительной безопасности можно полностью отключить проверку подлинности пароля, чтобы доступ к VPS был возможен только с помощью авторизованных SSH-ключей. Такая настройка не только защитит ваш сервер от несанкционированного доступа, но и упростит ваш рабочий процесс, избавив от необходимости вводить пароли при каждом входе в систему.