Я много раз успешно и с легкостью настраивал SSH-аутентификацию без пароля (через authorized_keys), обычно на серверах, на которых до этого не было никаких пользовательских изменений конфигурации, связанных с ssh.
Теперь мне нужно настроить его на сервере CentOS, где другой человек ранее отключил эту функцию из-за «проблем безопасности», высказанных плохо информированным менеджером. Этот человек больше не доступен, и я не могу понять, как это сделать.
У меня это в sshd_config:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
UsePAM yes
Есть и другие настройки, но я думал, что они не имеют значения. Есть предложения, что я должен проверить, чтобы эта работа работала?
Самая распространенная причина, которую я видел, - это слишком разрешительные разрешения для ~ / .ssh / авторизованных ключей. Файл авторизованных ключей должен иметь доступ на чтение / запись ТОЛЬКО для владельца (chmod 600 ~/.ssh/authorized_keys
). Сам каталог также может не допускать никаких записей (chmod 700 ~/.ssh
)
Вы действительно можете прокомментировать AuthorizedKeysFile
, поскольку это значение по умолчанию.
Что сервер регистрирует при сбое в настоящее время? Вы проверили разрешения на .ssh
и authorized_keys
и / или инвалиды StrictModes
?
Увеличить LogLevel
при необходимости и / или запустить sshd
в автономном режиме.
Быстрое и грязное решение: скопируйте / etc / ssh / sshd_config и / etc / ssh / ssh_config с сервера, на котором он работает.
Вы также можете удалить все комментарии из файлов на рабочем и нерабочем сервере (например, запустить egrep -v '^#' /etc/ssh/sshd_config | sort | uniq
и сравните результаты на обоих серверах.
Также посмотрите на права доступа к каталогам и файлам, как предложил Алекс.