Ответ оказался прост — SELinux блокировал доступ демону sshd к файлу /var/lib/mercurial-server/.ssh/authorized_keys.
Надо добавить соответствующий лэйбл и все начинает работать:
chcon -v --type=ssh_home_t /var/lib/mercurial-server/.ssh/authorized_keys