- Вопрос или проблема
- Ответ или решение
- Как настроить аутентификацию SSH с использованием RSA-ключа для обычного пользователя на VPS
- 1. Генерация ключа RSA
- 2. Установка публичного ключа на сервер
- 3. Скачивание приватного ключа
- 4. Настройка файла конфигурации SSH (опционально)
- 5. Проверка соединения
- Заключение
Вопрос или проблема
Я пытаюсь обеспечить безопасность своего VPS (на базе Ubuntu 10.04), поэтому пытаюсь использовать аутентификацию RSA. Очевидно, я не хочу входить как root, поэтому я отключил PermitRootLogin
, но также отключил PasswordAuthentication
.
Мой вопрос: как я могу использовать свой RSA ключ для аутентификации с обычным пользователем? Как я уже сказал, у меня это работало с root, когда эти настройки были включены, но я понятия не имею, как заставить это работать без них с обычным пользователем.
Вы должны иметь возможность поместить открытый ключ в ~/.ssh/authorized_keys или ~/.ssh/authorized_keys2 (режим 600) и всё будет работать так же, как с аккаунтом root.
Выполните эти команды, чтобы исправить разрешения
chmod 600 ~/.ssh/authorized_keys2
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
Сначала вам нужно немного подготовиться на сервере.
-
Сгенерируйте свой ключ (похоже, здесь у вас всё в порядке)
ssh-keygen -t rsa -b 1024 -C "Комментарий, если хотите" -f id_произвольное_имя
-
Скопируйте открытый (*.pub) ключ в папку
authorized_keys
для пользователей, под которыми вы хотите войти (как упоминал @John, 644 для этих); расширение сделает это дляauthorized_keys
иauthorized_keys2
.cat id_произвольное_имя.pub >> /home/<имя_пользователя>/.ssh/authorized_keys{,2}
-
Скачайте приватный ключ
scp user@server:/loc/on/server/id_произвольное_имя ~/.ssh/
-
Установите безопасные разрешения для приватного ключа 600, так как он на вашем локальном компьютере
chmod 600 ~/.ssh/id_произвольное_имя
Необязательно:
-
Если вы хотите сократить набор команд на локальном уровне, настройте локальный конфигурационный файл в ~/.ssh/
vim ~/.ssh/config Host НекоторыеОпознавательноеИмя Hostname domain.com User имя_пользователя IdentityFile ~/.ssh/id_произвольное_имя
Это позволит вам просто ввести ssh НекоторыеОпознавательноеИмя
(дополнение по нажатию Tab работает!) и подключиться.
Примечание Похоже, вы отключили вход для root, так что это вам не совсем применимо. Однако для будущих читателей:
Сказав всё это, рекомендуется разделение ключей. Иначе, если я не указываю имя пользователя и сервер запрашивает – root – это очевидный вариант для пробования!
Ответ или решение
Как настроить аутентификацию SSH с использованием RSA-ключа для обычного пользователя на VPS
Если вы хотите улучшить безопасность вашего VPS (виртуального частного сервера), работающего на Ubuntu 10.04, и планируете использовать RSA-авторизацию без входа под рутом, прочитайте этот пост. Я предложу пошаговое руководство, как настроить аутентификацию SSH для обычного пользователя в условиях отключенной аутентификации паролем и запрета на вход под рутом.
1. Генерация ключа RSA
Для начала вам нужно сгенерировать пару ключей RSA. Откройте терминал на вашем локальном компьютере и выполните следующую команду:
ssh-keygen -t rsa -b 2048 -C "Ваш комментарий" -f ~/.ssh/id_arbitrary_name
Здесь флаг -b 2048
указывает на использование 2048 бит для ключа, что более безопасно по сравнению с 1024 битами. Файл ~/.ssh/id_arbitrary_name
— это имя, которое вы выбрали для вашей пары ключей. Обратите внимание, что если вы пропустите параметр -f
, ключ будет сохранен с именем id_rsa
и соответственно id_rsa.pub
.
2. Установка публичного ключа на сервер
После того как вы сгенерировали ключи, необходимо разместить публичный ключ на сервере. Подключитесь к вашему VPS под рутом (или под обычным пользователем, если у вас еще включена аутентификация паролем) и выполните следующие команды:
mkdir -p /home/your_username/.ssh
chmod 700 /home/your_username/.ssh
cat /path/to/id_arbitrary_name.pub >> /home/your_username/.ssh/authorized_keys
chmod 600 /home/your_username/.ssh/authorized_keys
Замените your_username
на имя обычного пользователя, который будет использоваться для входа. Убедитесь, что права доступа к файлам и папкам установлены корректно (700 для директории .ssh
и 600 для файла authorized_keys
).
3. Скачивание приватного ключа
Теперь вам нужно загрузить приватный ключ на вашу локальную машину:
scp your_username@server:/path/to/id_arbitrary_name ~/.ssh/
Замените your_username
и server
на ваши фактические имя пользователя и адрес сервера. После загрузки установите права доступа для приватного ключа:
chmod 600 ~/.ssh/id_arbitrary_name
Это позволит защитить ваш приватный ключ от несанкционированного доступа.
4. Настройка файла конфигурации SSH (опционально)
Чтобы упростить подключение к серверу, вы можете создать файл конфигурации SSH на своей локальной машине. Откройте ваш редактор и создайте файл ~/.ssh/config
:
vim ~/.ssh/config
Добавьте в него следующее содержимое:
Host MyServer
Hostname your.server.com
User your_username
IdentityFile ~/.ssh/id_arbitrary_name
Теперь вы можете подключаться к вашему серверу, просто введя команду ssh MyServer
, что значительно упрощает процесс.
5. Проверка соединения
Теперь вы готовы проверить соединение. Просто выполните команду:
ssh your_username@your.server.com
Если все настроено правильно, вы должны войти на сервер без необходимости вводить пароль.
Заключение
Следуя этому руководству, вы сможете безопасно настроить SSH с использованием RSA-ключа для аутентификации обычного пользователя. Это не только повысит безопасность вашего VPS, но и упростит процесс входа. Помните, что правильно настроенные права доступа к файлам и директориям — ключ к успешной реализации безопасности при работе с SSH.