У меня на моем сервере отключены входы root по ssh, но в настоящее время я хочу создать резервную копию некоторых файлов, принадлежащих root, на моем локальном компьютере.
Я пытаюсь найти способ использовать SCP для извлечения файлов при входе в систему через SSH без запускает демон ssh на моем локальном компьютере - и без установки каких-либо дополнительных инструментов.
Просто интересно, возможно ли это? Я не думаю, что это так ..
Единственный способ, о котором я могу думать, - это запустить сценарий, который входит в систему через учетную запись пользователя, затем su в root, а затем копирует, но я пытаюсь избежать этого, потому что я не хочу жестко закодировать свой корневой pw в файл сценария на моей локальной машине.
Вы можете делать все, что хотите, с помощью комбинации rsync, ssh и sudo.
Если вы добавите на свой компьютер локального пользователя с «привилегиями», вы можете разрешить этому пользователю запускать rsync через sudo. Это позволит вам удаленно извлекать файлы, доступные для чтения только root, в вашу локальную систему.
#
# Our backup client needs to rsync in a privileged manner.
#
privileged ALL = NOPASSWD: /usr/bin/rsync
Как только вы это сделаете, вы можете запустить что-то вроде этого для извлечения файлов:
rsync --rsync-path="sudo rsync" privileged@host.to.backup:/root /backup_directory
Разрешите вход root на сервере, но ограничьте их только ключом доступа. Настройте пару ключей на своем локальном компьютере, поместите открытый ключ в файл authorized_keys root на сервере и вперед.
Это на 99,9999% так же безопасно, как запрет на вход в систему с правами root, пока вы защищаете пару ключей от кражи.
Если вы настроили сложную парольную фразу для ключа, вам нужно будет присутствовать для запуска резервного копирования или использования ssh-agent или чего-то подобного. Или вы можете просто не поставить парольную фразу на ключ, и теперь у вас есть волшебный беспарольный доступ к вашему серверу через root. Очевидно, что в этом случае кража закрытого ключа является более серьезной проблемой, поэтому вам необходимо понимать эти риски и либо уменьшать их, либо использовать надежную парольную фразу.
Я знаю, что это не совсем то, о чем вы просили, но, честно говоря, корневые входы, защищенные паролем, безопасны (с оговоркой, что вы должны обновлять патчи sshd).
Любой другой вариант, который позволяет любому идентификатору пользователя иметь достаточные права доступа на целевом сервере, чтобы быть root, без помещения их за защищенным паролем ssh-логином, на самом деле менее безопасен, чем просто разрешение root только через пароль.
Если ваша локальная рабочая станция имеет предсказуемый IP-адрес, вы можете сделать его еще более безопасным, используя AllowUsers
вариант.
например
AllowUsers root@1.1.1.1