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

Mercurial: Как настроить hg-ssh с помощью user / pass?

Мне нужно предоставить некоторым сторонним разработчикам доступ для создания репозиториев 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 startssh login @ host / bin / ls`, вывод будет «Привет, до свидания», и соединение будет завершено.