Удаленно использовать root через ssh для унисон

Я немного запутался в том, как запустить unison для синхронизации файлов с атрибутами group и owner в системе Ubuntu, так как вам нужно быть пользователем root. Но мне нужно сделать это дистанционно и автоматически. Я знаю, что могу настроить ssh-ключи и тому подобное для моего пользователя, но это не имеет значения, потому что я все еще не смогу ssh от имени root для внесения изменений в удаленной системе.

Я предполагаю, что мой вопрос; Как мне использовать root в удаленной системе для унисонирования? или есть способ установить команду для пользователя на "автоматический запуск" от имени пользователя root без пароля?

Или есть другие способы, которыми я мог бы это сделать?

Любое руководство с этим приветствуется.

3 ответа

Решение

Вы должны быть в состоянии настроить ssh логин с ключами, как вы заявили.

Убедитесь, что ваш sshd_config разрешает вход пользователя root

PermitRootLogin without-password

Затем скопируйте сгенерированный открытый ключ в /root/.ssh/authorized_keys.

Теперь вы должны войти в систему, просто скажите unison использовать ключ ssh, который вы сгенерировали.

Sudo можно настроить так, чтобы не запрашивать пароль для некоторых или всех команд с NOPASSWD параметр; но в любом случае я думаю, что было бы проще использовать ssh-ключи для прямого доступа к удаленной системе как root; после настройки без пароля аутентификация должна вызываться следующим образом:

unison a.tmp ssh://username@remotehostname/a.tmp

Запуск Unison от имени пользователя root в удаленной системе несет угрозу безопасности и обычно не рекомендуется. Однако если у вас есть конкретный вариант использования, который требует этого, вы можете использовать sudo и SSH для выполнения команды Unison с правами root в удаленной системе.

Вот пошаговое руководство:

Настройте аутентификацию по ключу SSH:

Убедитесь, что для вашего пользователя настроена аутентификация по ключу SSH как в локальной, так и в удаленной системе. Это позволит вам подключиться без ввода пароля.

На вашей локальной машине:

      ssh-keygen -t rsa
ssh-copy-id user@remote_server

Замените user своим именем пользователя и Remote_server IP-адресом или именем хоста удаленного сервера.

Настройте sudo в удаленной системе:

Вы можете настроить sudo, чтобы ваш пользователь мог выполнять определенные команды от имени пользователя root без ввода пароля. Будьте осторожны при этом, так как это создает угрозу безопасности.

Отредактируйте файл sudoers с помощью visudo :

      sudo visudo

Добавьте следующую строку в конец файла (замените yourusername и /path/to/unison на свое фактическое имя пользователя и путь Unison):

      yourusername ALL=(ALL) NOPASSWD: /path/to/unison

Сохраните и выйдите из редактора.

Запустите команду Unison:

      ssh user@remote_server sudo /path/to/unison -batch -owner -group /path/on/local machine ssh://localhost:/path/on/remote/machine

Теперь вы можете запускать Unison удаленно, используя SSH и sudo. Опять же, имейте в виду последствия для безопасности запуска команд от имени пользователя root без пароля. Убедитесь, что ваша установка безопасна и вы понимаете связанные с ней риски. Всегда следуйте рекомендациям по обеспечению безопасности при работе с удаленными системами.

Другие вопросы по тегам