Вопрос или проблема
Я пытаюсь настроить SSH-ключи для входа в свой GoFlex Home 2TB. Вот шаги, которые я предпринял
- Скопируйте свой публичный ключ в
/home/user/.ssh/authorized_keys
- Измените
/etc/ssh/sshd_config
, чтобы разрешить аутентификацию по публичному ключу и указать на файлauthorized_keys
- Завершите сессию SSH
- Войдите в
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 без пароля, но некоторые из них, к сожалению, неверны.
Давайте начнем заново и проверим каждый шаг:
- С КЛИЕНТА – Сгенерируйте ключ:
ssh-keygen -t rsa
Публичный и приватный ключи (id_rsa.pub
иid_rsa
) будут автоматически сохранены в директории~/.ssh/
.
Настройка будет проще, если вы используете пустую фразу-пароль. Если вы не хотите этого делать, тогда все равно следуйте этому руководству, но также проверьте следующий пункт. - С КЛИЕНТА – Скопируйте публичный ключ на сервер :
ssh-copy-id user@server
Публичный ключ клиента будет скопирован в местоположение сервера~/.ssh/authorized_keys
. - С КЛИЕНТА – Подключитесь к серверу:
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 может показаться сложной задачей, но следуя приведённой ниже инструкции, вы сможете успешно выполнить её. В данном руководстве мы разберём основные шаги, которые необходимо пройти, а также возможные ошибки и их решения.
Шаги по настройке
-
Генерация пары ключей:
Чтобы начать, создайте пару ключей SSH на вашем клиентском устройстве (в данном случае, на Linux Mint 17.3) с помощью команды:ssh-keygen -t rsa
Это создаст два файла:
~/.ssh/id_rsa
(приватный ключ) и~/.ssh/id_rsa.pub
(публичный ключ). -
Копирование публичного ключа на NAS:
Используйте командуssh-copy-id
для автоматического копирования публичного ключа на ваш GoFlex Home. Заменитеuser
на ваше имя пользователя иgoflexhome.local
на адрес вашего NAS:ssh-copy-id user@goflexhome.local
Этот шаг добавит содержимое файла
id_rsa.pub
в файл~/.ssh/authorized_keys
на NAS. -
Проверка и настройка файла authorized_keys:
Используя SSH для входа на NAS, убедитесь, что файлauthorized_keys
имеет правильные разрешения:chmod 700 /home/user/.ssh chmod 600 /home/user/.ssh/authorized_keys
Это гарантирует, что только владелец сможет читать и писать в этот файл.
-
Изменение конфигурации SSH-сервера:
Откройте файл конфигурации SSH-сервера, чтобы убедиться, что разрешена аутентификация по ключам:nano /etc/ssh/sshd_config
Убедитесь, что следующие параметры установлены в
yes
:PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
После внесения изменений перезапустите SSH-сервер:
service ssh restart
-
Перезагрузка NAS:
После всех изменений рекомендуется перезагрузить NAS для применения новых настроек:reboot
-
Проверка подключения:
Попробуйте подключиться к 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.