Обычно я захожу на SSH-сервер (где я непривилегированный пользователь), используя свои открытые ключи. Я также использую аутентификацию по паролю, когда использую сервер в качестве репозитория git- Annex.

Я хочу разрешить выполнение только связанных с git-annex application команд, когда sshd аутентифицирован с паролем. git-annex поставляется с оберткой, которая является аналогом git-shell для git . Я знаю, что мог бы использовать authorized_keys чтобы сделать это в других ситуациях, но не в этом конкретном случае.

Как я могу это сделать? Сервер является Debian wheezy с OpenSSH_6.0p1 Debian-4+deb7u3.

2 ответа2

1

Поместите это перед каждым ssh-ключом в ~/.ssh/authorized_keys который вы хотите использовать исключительно для git-приложения (замените _MY_ANNEX_REPO_DIR_ и _PATH_TO_GIT_ANNEX_SHELL_ соответствующими значениями):

command="GIT_ANNEX_SHELL_DIRECTORY=_MY_ANNEX_REPO_DIR_ _PATH_TO_GIT_ANNEX_SHELL_/git-annex-shell -c $SSH_ORIGINAL_COMMAND",no-port-forwarding,no-x11-forwarding,no-agent-forwarding

В настоящее время я пытаюсь заменить Dropbox, используя git-annex. Настройки выше работали для меня уже неделю. Я обновлю этот пост, если обнаружу какие-либо проблемы с этим.

0

Непривилегированный пользователь не может настроить sshd. Возможно, вы сможете ограничить ваши авторизованные записи одной командой. Но не с паролем логин. Вам нужна помощь пользователя root для изменения вашей оболочки входа или чего-то еще. Если она создает ограниченную оболочку или изолированную тюрьму, то такая настройка возможна.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .