SSH безпарольный доступ не работает

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

Я пытаюсь настроить доступ через SSH между узлами в дата-центре с помощью ключей.

Все узлы имеют общий файловый ресурс, поэтому я настраиваю всё в папке ~/.ssh/.

Я уже сделал:

  1. Сгенерировал SSH-ключ (и сохранил его в файле ~/.ssh/id_rsa). Я установил для него парольную фразу
  2. Запустил SSH-агент и добавил закрытый ключ в агент
  3. Подтвердил, что ключ загружен в агент
  4. Добавил открытый ключ в файл ~/.ssh/authorized_keys
  5. Установил разрешения 700 для папки ~/.ssh и 600 для файла ~/.ssh/authorized_keys

Теперь я пытаюсь подтвердить настройку и выполняю:

$ssh -v me@node11

И он просит ввести мой пароль (что я пытаюсь предотвратить).

Запустив с повышенной подробностью, он говорит:

$ssh -v me@node11
...
debug1: Следующий метод аутентификации: publickey
debug1: Предлагаю RSA открытый ключ: /mnt/pacific/thecompany/me/.ssh/id_rsa
debug1: Аутентификации, которые могут продолжаться: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Пытаюсь закрытый ключ: /mnt/pacific/thecompany/me/.ssh/id_dsa
debug1: Пытаюсь закрытый ключ: /mnt/pacific/thecompany/me/.ssh/id_ecdsa
debug1: Пытаюсь закрытый ключ: /mnt/pacific/thecompany/me/.ssh/id_ed25519
debug1: Следующий метод аутентификации: password
me@compute11's password:

Что я упустил, чтобы разрешить не интерактивный доступ SSH между узлами?

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

Проблемы с беспарольным доступом по SSH: возможные причины и решения

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

1. Права доступа к каталогам и файлам

Вы уже указали, что установили права на директорию ~/.ssh на 700, а на файл ~/.ssh/authorized_keys на 600. Это правильный шаг, но убедитесь, что права доступа к родительским директориям также не являются слишком открытыми. Папка пользователя и ее домашняя директория должны иметь права 750 или 700.

Пример правильных прав доступа:

chmod 700 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

2. Корректность публичного ключа

Убедитесь, что публичный ключ, который вы добавили в файл ~/.ssh/authorized_keys, является правильным и соответствует вашему закрытому ключу (id_rsa). Вы можете проверить это, сравнив содержимое файлов id_rsa.pub и authorized_keys.

Пример команды для проверки:

cat ~/.ssh/id_rsa.pub
cat ~/.ssh/authorized_keys

3. Запуск SSH-агента

Вы упомянули, что добавили ваш закрытый ключ в SSH-агент. Убедитесь, что SSH-агент действительно запущен и что сессия SSH имеет доступ к его ключам. Вы можете перезапустить SSH-агент и заново добавить ключ.

Пример команд:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

4. Проверка конфигурации SSH-сервера

Проверьте конфигурацию SSH-сервера на узле node11. Файл конфигурации обычно находится по пути /etc/ssh/sshd_config. Обратите внимание на следующие параметры:

  • PubkeyAuthentication должен быть установлен в yes.
  • AuthorizedKeysFile должен указывать на файл, который вы использовали. По умолчанию он равен .ssh/authorized_keys.

Если вы внесли изменения в sshd_config, не забудьте перезапустить SSH-сервер:

sudo systemctl restart sshd

5. Использование passphrase

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

6. Путь к файлам

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

ssh -i /mnt/pacific/thecompany/me/.ssh/id_rsa me@node11

Заключение

Настройка беспарольного доступа по SSH — это полезный, но тонкий процесс, требующий внимания к деталям. Следуя указанным шагам, вы сможете устранить проблемы и успешно настроить SSH-доступ без ввода пароля. Не игнорируйте мелочи в конфигурациях и правах доступа, так как они могут стать причиной неполадок. Если после всех этих проверок проблема не решилась, рассмотрите возможность обращения к системному администратору для детальной диагностики.

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

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