Назад | Перейти на главную страницу

Настройка аутентификации на основе ключей для root

Я подключаюсь к одной Linux-машине со стандартной учетной записью и использую sudo, когда необходимо выполнить что-то немного выше моей пользовательской станции.

Одна из таких вещей - выполнить извлечение с помощью git (sudo git pull).

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

Мне удалось настроить аутентификацию между моей стандартной учетной записью на машине и репозиторием git, но когда я попытаюсь настроить ее как root, она не будет работать (я выполняю те же задачи, что и для своей обычной учетной записи, но использую sudo each время)

Я предположил, что поскольку sudo запускается от имени пользователя root (sudo whoami возвращает root), генерирует ключи и передает их на другой компьютер, поскольку sudo должен работать так же, как если бы я вошел в систему как root. Я ошибаюсь в своем предположении или есть проблемы с использованием аутентификации на основе ключа в качестве пользователя root на другом компьютере?

Вход по SSH с правами root отключен по умолчанию в большинстве дистрибутивов Linux (см. Ответы Джеймса Лори или Джоши, чтобы узнать, как его включить). Но нет веских причин использовать его IMO. (Кроме того, я не уверен, что понимаю, почему вы хотите быть root при выполнении git pull, но давайте предположим, что вам это действительно нужно ...)

В любом случае, если вы хотите запустить определенную задачу от имени пользователя root без пароля, вам следует настроить sudo, чтобы разрешить именно это. Вам понадобится строка вроде следующей в вашем sudoers файл:

<username you want to use> ALL=(ALL) NOPASSWD: <command you want to run>

Не забудьте сначала внимательно прочитать man-страницы для sudo и sudoers, а также всегда использовать visudo отредактировать ваш sudoers config!

Проверить, если PermitRootLogin установлен на without-password в твоем sshd_config и "корень" не в DenyUsers (или отсутствует в AllowUsers) список.

Также проверьте разрешения на /root/.ssh и /root/.ssh/authorized_keys. Оба должны быть доступны только для "root" (например, иметь маску разрешений 0700 и 0600).

Проверьте, разрешен ли PermitRootLogin в / etc / ssh / sshd_config