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

Есть ли у непривилегированного пользователя без учетной записи ssh в другом поле?

Я знаю, как заставить пользователя перейти по ssh в другой ящик с помощью ключа:

ssh -l targetuser -i path/to/key targethost

Но как насчет пользователей без учетной записи, таких как apache? Поскольку у этого пользователя нет домашнего каталога, в который он может записать .ssh каталог, все это продолжает давать сбой:

$ sudo -u apache ssh -o StrictHostKeyChecking=no -l targetuser -i path/to/key targethost
Could not create directory '/var/www/.ssh'.
Warning: Permanently added '<hostname>' (RSA) to the list of known hosts.
Permission denied (publickey).

Я пробовал варианты с использованием -o UserKnownHostsFile=/dev/null и установка $HOME к /dev/null и ни один из них не помог. Я это понимаю sudo Возможно, это можно исправить для меня, но я стараюсь не требовать ручной настройки сервера, поскольку этот код будет развернут в нескольких различных средах.

Любые идеи?

Вот несколько примеров того, что я пробовал, но которые не работают:

$ sudo -u apache export HOME=path/to/apache/writable/dir/ ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=path/to/apache/writable/dir/.ssh/known_hosts -l deploy -i path/to/key targethost
$ sudo -u apache ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=path/to/apache/writable/dir/.ssh/known_hosts -l deploy -i path/to/key targethost
$ sudo -u apache ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -l deploy -i path/to/key targethost

В конце концов, я буду использовать это решение для запуска rsync как apache пользователь.

как насчет добавления следующего в /etc/sudoers

someuser  ALL = (apache) NOPASSWD: /usr/bin/rsync [options]

это позволит некоторым пользователям запускать sudo -u apache /usr/bin/rsync [options] без пароля (удобно для сценариев ... просто явно вставьте параметры rsync, чтобы они не могли ничего / кроме / этого.)

Это было у Зоредаш. Ни один параметр, который я передал в командной строке, не мог спасти меня, поскольку для файла закрытого ключа было установлено значение 600 разрешения и принадлежат моему собственному пользователю. Виноват. Извинения всем :-(

Просто создайте /var/www/.ssh/ и дайте apache разрешение на запись для него или измените $ HOME apache на каталог, в который он может писать.