Как настроить авторизацию по ключу для ssh?
О том, что такое публичные/закрытые ключи и ssh-сервер я тут рассказывать не буду. Но вот авторизация по ключу иногда не хочет работать из коробки. Особенно это касается VPS на CentOS (ведь у каждого хостера свой базовый образ). Чтобы авторизация завелась в 99% случаев достаточно проверить лишь несколько моментов.
1. Проверьте, чтобы в конфигурационном файле /etc/ssh/sshd_config
у вас были установлены следующие значения для представленных ниже параметров:
PermitRootLogin yes RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
Насколько я помню, три последних параметра вообще действуют по умолчанию (поэтому они в конфигурационном файле могут быть закомментированы или отсутствовать, но, главное, чтобы у них не стояли иные значения, если они представлены). Параметр PermitRootLogin yes
надо ставить, если вы планируете авторизовываться именно под суперпользователям (без использования всяких sudo
).
2. Проверьте, выработана ли на том сервере, куда вы собираетесь заходить по ключам, пара локальных ключей для рута. Проще всего посмотреть, есть ли вообще директория /root/.ssh на сервере и не пуста ли она. Если пуста или отсутствует, то запускайте ssh-keygen
и соглашайтесь на всё предложенное по-умолчанию.
3. Проверьте, что файл для доверенных публичных ключей есть и к нему установлены правильные права доступа:
touch /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys
Далее надо добавить в файл /root/.ssh/authorized_keys
свой открытый ключ.
Обычно, новички начинают действовать с самого последнего шага 🙂