Удаленно использовать 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 без пароля. Убедитесь, что ваша установка безопасна и вы понимаете связанные с ней риски. Всегда следуйте рекомендациям по обеспечению безопасности при работе с удаленными системами.