Как настроить авторизацию по ключу для 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 свой открытый ключ.

Обычно, новички начинают действовать с самого последнего шага 🙂



Прокомментируйте: