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

Правильное расположение ключей SSH для пользователя системы?

У меня есть системная учетная запись, с которой я запускаю базу данных (а именно mongodb). По умолчанию у него нет дома. Теперь я хотел бы запускать команды scp из этой учетной записи с аутентификацией ключей ssh ​​на удаленный сервер для экспорта резервных копий.

Должен ли я просто создать папки / home / mongodb и /home/mongodb/.ssh вручную для хранения ключей SSH, как по умолчанию для обычных пользователей? После этого она по-прежнему считается системной?

Спасибо!

Используя -i для SCP вы можете указать любой закрытый ключ SSH (который пользователь может прочитать) в качестве «файла идентификации» - это может устранить ваш вопрос (вы можете поместить ключ где угодно, если он доступен для чтения пользователю MongoDB и вы указываете это с помощью -i :-)


Однако если углубиться в вопрос, который вы задали, общий ответ unix на ваш вопрос - поместить их в каталог .ssh в домашнем каталоге пользователя. Чтобы найти этот домашний каталог, посмотрите / etc / passwd (см. Справочную страницу для этого файла, если вы не знакомы с его форматом).

Если, как вы заметили, у пользователя нет домашнего каталога (для него установлено что-то недопустимое, или /) вы можете создать для этого пользователя домашний каталог и обновить его учетную запись, указав правильный домашний каталог (инструменты для этого различаются от системы к системе, однако vipw обычно хорошее место для начала). Это сводит его к проблеме, описанной выше.

Что касается «системного аккаунта», это вопрос религиозный. В моих средах «системные учетные записи» имеют числовые идентификаторы UID ниже 1000 и их пароль заблокирован (зашифрованный пароль установлен на «*»).
Другие люди скажут вам, что для того, чтобы это была "системная учетная запись", она должна иметь nologin в качестве оболочки, или что домашний каталог должен находиться в определенном месте (или не существовать), или что все из этих критериев должны быть выполнены :-)

Если вы используете дистрибутив Debian, то у каждого пользователя, у которого нет дома в / home / user, есть свой дом в / var / lib / user. Там вы можете найти или создать (если он еще не существует) каталог .ssh /. Я не уверен, что этот путь такой же и для другого дистрибутива (centos, ...).

Вероятно, было бы лучше создать учетную запись обычного пользователя и просто установить для их оболочки значение notty и использовать ssh-keygen -t rsa для настройки разрешений папки ssh.