Добрый день, Хабражители!
Ставлю и настраиваю Mercurial-server на Centos 6.2 по следующим мануалам:
хабр и
чей-то блог.
Все встало отлично, работает. Но есть один нюанс с настройкой SSH по ключам. После добавления ключа пользователя в репозиторий hgadmin и выполнения
refresh-auth обновляется файл
/var/lib/mercurial-server/.ssh/authorized_keys.
Копирую этот файл для sshd:
cp /var/lib/mercurial-server/.ssh/authorized_keys /etc/ssh/keys/hg.pub
И пишу в sshd_config:
PubkeyAuthentication yes
AuthorizedKeysFile /etc/ssh/keys/%u.pub
В данном случае все работает нормально.
НО! Проблемы начинаются, если я делаю мягкую ссылку на ключи вместо их копирования (ведь согласитесь, не хочется каждый раз при обновлении файла authorized_keys копировать его руками):
ln -s /var/lib/mercurial-server/.ssh/authorized_keys /etc/ssh/keys/hg.pub
В этом случае при попытке обращения к репозиторию появляется «server refused our key». В логах ssh вижу, что он пытается читать файл
/etc/ssh/keys/hg.pub, но не находит в нем ни одной записи.
Важно: даже если в sshd_config пишу один из этих вариантов:
AuthorizedKeysFile /var/lib/mercurial-server/.ssh/authorized_keys
AuthorizedKeysFile ~/.ssh/authorized_keys
AuthorizedKeysFile /etc/ssh/keys/hg.pub
Все равно нет успеха. То есть файл с ключами, лежащий в домашней папке пользователя hg, не читается.
Ключи, лежащие в домашних директориях других пользователей читаются и работают нормально.
Приму любые советы)