Настройте SSH-вход с помощью публичного ключа в GoFlex Home

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

Я пытаюсь настроить SSH-ключи для входа в свой GoFlex Home 2TB. Вот шаги, которые я предпринял

  1. Скопируйте свой публичный ключ в /home/user/.ssh/authorized_keys
  2. Измените /etc/ssh/sshd_config, чтобы разрешить аутентификацию по публичному ключу и указать на файл authorized_keys
  3. Завершите сессию SSH
  4. Войдите в goflexhome.loal и перезагрузите устройство NAS

Данные клиентской системы:

  • ОС: Linux Mint 17.3
  • Тип сети: LAN (Ethernet)

Данные хост-системы (NAS)

  • ОС: hipserv2 (основана на Linux от Seagate, стандартная ОС в GoFlex Home)

Когда я пытаюсь инициировать сессию ssh, я получаю запрос пароля вместо использования моего приватного ключа для входа

Права доступа к файлам в /home/user/.ssh

-bash-3.2$ ls -la
total 4
drwxr-xr-x 2 user root 232 Mar 18 16:49 .
dr-xr-x--- 7 user www  616 Mar 18 16:48 ..
-rwxr-xr-x 1 user root 746 Mar 18 16:49 authorized_keys
-bash-3.2$ 

SSH детализировано

Полный PasteBin.

Выдержка:

ssh -v [email protected]
OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
...
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available
...
debug1: Next authentication method: publickey
debug1: Offering RSA public key: user@user-system
debug1: Server accepts key: pkalg ssh-rsa blen 535
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Trying private key: /home/user/.ssh/id_rsa
debug1: Trying private key: /home/user/.ssh/id_dsa
debug1: Trying private key: /home/user/.ssh/id_ecdsa
debug1: Trying private key: /home/user/.ssh/id_ed25519
debug1: Next authentication method: password
[email protected]'s password: 
debug1: Authentication succeeded (password).
Authenticated to goflexhome.local ([10.42.0.12]:22).

На машине hipserve2, пожалуйста, выполните

chmod 700 /home/user/.ssh
chmod 600 /home/user/.ssh/authorized_keys

и попробуйте снова

Сначала проверьте содержимое /var/log/auth.log на сервере, чтобы выяснить, почему аутентификация по ключу вообще пропускается.

Ранее я сталкивался с некоторыми учебными материалами, которые описывают, как добиться настройки ssh без пароля, но некоторые из них, к сожалению, неверны.
Давайте начнем заново и проверим каждый шаг:

  1. С КЛИЕНТА – Сгенерируйте ключ: ssh-keygen -t rsa
    Публичный и приватный ключи (id_rsa.pub и id_rsa) будут автоматически сохранены в директории ~/.ssh/.
    Настройка будет проще, если вы используете пустую фразу-пароль. Если вы не хотите этого делать, тогда все равно следуйте этому руководству, но также проверьте следующий пункт.
  2. С КЛИЕНТА – Скопируйте публичный ключ на сервер : ssh-copy-id user@server
    Публичный ключ клиента будет скопирован в местоположение сервера ~/.ssh/authorized_keys.
  3. С КЛИЕНТА – Подключитесь к серверу: ssh user@server

Теперь, если это все еще не работает после описанных 3 шагов, давайте попробуем следующее:

  • Проверьте права доступа к папке ~/ssh на клиенте и сервере.
  • Проверьте /etc/ssh/ssd_config на сервере, чтобы убедиться, что опции RSAAuthentication, PubkeyAuthentication и UsePAM не отключены, так как они включены по умолчанию с yes.
  • Если вы ввели фразу-пароль во время генерации своего клиентского ключа, вы можете попробовать ssh-agent & ssh-add, чтобы добиться подключения без пароля в своей сессии.
  • Проверьте содержимое /var/log/auth.log на сервере, чтобы выяснить, почему аутентификация по ключу вообще пропускается.

Ответ или решение

Настройка SSH для входа с использованием публичного ключа на GoFlex Home

Настройка SSH-авторизации с использованием публичного ключа на устройстве GoFlex Home может показаться сложной задачей, но следуя приведённой ниже инструкции, вы сможете успешно выполнить её. В данном руководстве мы разберём основные шаги, которые необходимо пройти, а также возможные ошибки и их решения.

Шаги по настройке

  1. Генерация пары ключей:
    Чтобы начать, создайте пару ключей SSH на вашем клиентском устройстве (в данном случае, на Linux Mint 17.3) с помощью команды:

    ssh-keygen -t rsa

    Это создаст два файла: ~/.ssh/id_rsa (приватный ключ) и ~/.ssh/id_rsa.pub (публичный ключ).

  2. Копирование публичного ключа на NAS:
    Используйте команду ssh-copy-id для автоматического копирования публичного ключа на ваш GoFlex Home. Замените user на ваше имя пользователя и goflexhome.local на адрес вашего NAS:

    ssh-copy-id user@goflexhome.local

    Этот шаг добавит содержимое файла id_rsa.pub в файл ~/.ssh/authorized_keys на NAS.

  3. Проверка и настройка файла authorized_keys:
    Используя SSH для входа на NAS, убедитесь, что файл authorized_keys имеет правильные разрешения:

    chmod 700 /home/user/.ssh
    chmod 600 /home/user/.ssh/authorized_keys

    Это гарантирует, что только владелец сможет читать и писать в этот файл.

  4. Изменение конфигурации SSH-сервера:
    Откройте файл конфигурации SSH-сервера, чтобы убедиться, что разрешена аутентификация по ключам:

    nano /etc/ssh/sshd_config

    Убедитесь, что следующие параметры установлены в yes:

    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

    После внесения изменений перезапустите SSH-сервер:

    service ssh restart
  5. Перезагрузка NAS:
    После всех изменений рекомендуется перезагрузить NAS для применения новых настроек:

    reboot
  6. Проверка подключения:
    Попробуйте подключиться к NAS с помощью SSH:

    ssh user@goflexhome.local

    Если вы всё настроили правильно, то при попытке подключения система больше не должна запрашивать пароль.

Ошибки и их решения

Если вы по прежнему получаете запрос на ввод пароля, выполните следующие действия для диагностики:

  • Проверьте логи:
    Содержимое файла /var/log/auth.log может содержать подсказки относительно причин, по которым аутентификация по ключу не работает. Ищите записи, начинающиеся со слов "Failed" или "Authentication".

  • Права доступа:
    Проверьте, что права доступа к файлам и директориям .ssh корректные как на клиенте, так и на сервере. Убедитесь, что только владелец имеет доступ к .ssh и authorized_keys.

  • Конфигурация сервера:
    Дополнительно убедитесь, что в файле /etc/ssh/sshd_config параметры, касающиеся аутентификации, не отключены. Опции RSAAuthentication, PubkeyAuthentication и UsePAM должны быть выставлены на yes.

  • Использование ssh-agent:
    Если вы используете парольную фразу для вашего приватного ключа, то может потребоваться использовать ssh-agent и ssh-add. Это позволит избежать постоянного запроса на ввод пароля при подключении.

Заключение

Настройка SSH аутентификации с помощью публичного ключа на GoFlex Home, хотя и требует внимательности и проверки, является вполне осуществимой задачей. Следуя приведённой инструкции и уделяя внимание возможным проблемам, вы сможете создать безопасный доступ к своему NAS без необходимости ввода пароля каждый раз. Если у вас возникли дополнительные вопросы, не стесняйтесь обращаться за помощью на специализированные форумы по Linux и SSH.

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

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