LINUX.ORG.RU

git clone/pull/fetch через ssh_key от юзера nobody

 , ,


0

3

Доброго времени суток. Задача такова, с репозитария, авторизоваться на котором можно только по ssh, нужно регулярно pull'ить данные(через крон). Делать это нужно только от юзера nobody не меняя при это его home_folder по дефолту / . На машине также нет возможности использовать ssh-agent. Я пытался делать так (команда 1)

su -m nobody -c'GIT_SSH=/var/folder/git_key.sh git clone remote_git_repo.git'

Где

/var/folder/git_key.sh
обертка, в которой
ssh -i /var/.ssh/git_key.pem $@
При выполнении команды 1, ошибка Could not create directory '/.ssh'. Т.е для nobody юзера таки пытается создаться фолдер в /. От юзера с homefolder'ом все работает корректно. Пробовал переопределять env HOME на /var где лежит ключ, но не очень помогло. Может кто-то то подсказать, возможно ли еще каким-либо хитрым способом это сделать, не изменяя параметры юзера nobody.


попробуй так:

su -m nobody -c'GIT_SSH=/var/folder/git_key.sh; git clone remote_git_repo.git'

обрати внимание на точку с запятой после установки переменной.

Iron_Bug ★★★★★
()
Ответ на: комментарий от kardapoltsev

О спасиб,сделал так

ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" -i /var/.ssh/git_key.pem $@

excite
() автор топика
Ответ на: комментарий от Iron_Bug

обрати внимание на точку с запятой после установки переменной

Нет, это сделает переменную локальной, а не экспортируемой. Дочерние процессы её не увидят.

$  WTF=zzz; set | grep WTF # set is a builtin
WTF=zzz
$ WTF=zzz; /usr/bin/env | grep WTF || echo not found
not found
$ WTF=zzz /usr/bin/env | grep WTF
WTF=zzz

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.