SSH RSA ключ с ненадлежащим пользователем

Вопрос или проблема

Я пытаюсь обеспечить безопасность своего 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

Сначала вам нужно немного подготовиться на сервере.

  1. Сгенерируйте свой ключ (похоже, здесь у вас всё в порядке)

    ssh-keygen -t rsa -b 1024 -C "Комментарий, если хотите" -f id_произвольное_имя
    
  2. Скопируйте открытый (*.pub) ключ в папку authorized_keys для пользователей, под которыми вы хотите войти (как упоминал @John, 644 для этих); расширение сделает это для authorized_keys и authorized_keys2.

    cat id_произвольное_имя.pub >> /home/<имя_пользователя>/.ssh/authorized_keys{,2}
    
  3. Скачайте приватный ключ

    scp user@server:/loc/on/server/id_произвольное_имя ~/.ssh/
    
  4. Установите безопасные разрешения для приватного ключа 600, так как он на вашем локальном компьютере

    chmod 600 ~/.ssh/id_произвольное_имя
    

Необязательно:

  1. Если вы хотите сократить набор команд на локальном уровне, настройте локальный конфигурационный файл в ~/.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.

Оцените материал
Добавить комментарий

Капча загружается...