Мне нужно предоставить некоторым сторонним разработчикам доступ для создания репозиториев Mercurial на нашем сервере. Однако я не обязательно хочу, чтобы у них были фактические входы SSH для просмотра сервера - или, по крайней мере, я хочу создать только одну учетную запись SSH. Мне нравится идея, что решения на основе hg-ssh предполагают создание единого входа исключительно для использования Mercurial, но я действительно не понимаю, как это настраивать.
Я знаю, что есть кое-что о создании ключа аутентификации для аутентификации без пароля, но меня это особо не волнует; Я бы просто попросил их ввести пароль. Тем не менее, мне просто нужна эта установка как можно скорее с минимальным доступом к серверу?
Вы должны использовать ключи SSH, если хотите использовать hg-ssh
- ограниченная оболочка запускается только при входе в систему с помощью ключа SSH. Прочтите заголовок в hg-ssh
для получения инструкций по настройке:
Для использования в
~/.ssh/authorized_keys
сcommand
вариант, см. sshd (8):command="hg-ssh path/to/repo1 /path/to/repo2 ~/repo3 ~user/repo4" ssh-dss ...
(возможно, вместе с этими другими полезными опциями:
no-port-forwarding
,no-X11-forwarding
,no-agent-forwarding
)Это позволяет передавать / передавать SSH из / в репозитории, указанные в качестве аргументов. Если все ваши репозитории являются подкаталогами общего каталога, вы можете разрешить более короткие пути с помощью:
command="cd path/to/my/repositories && hg-ssh repo1 subdir/repo2"
Вы можете использовать сопоставление с образцом вашей обычной оболочки, например:
command="cd repos && hg-ssh user/thomas/* projects/{mercurial,foo}"
hg-ssh
используйте функцию SSH, где вы можете принудительно выполнить команду и только эту команду, когда используется определенный ключ SSH.
Если вы настроили ключ для выполнения /bin/echo "Hello, goodbye" and you start
ssh login @ host / bin / ls`, вывод будет «Привет, до свидания», и соединение будет завершено.