Это должно работать "из коробки" и ничего не требовать, кроме того, чтобы помещать открытые ключи пользователей в их файл .ssh/authorized_keys для соответствующего пользователя на сервере. (Если этот файл не существует для пользователя, сделайте это!)
Единственное, о чем нужно знать, это то, что, если открытый ключ пользователя без полномочий root добавлен на серверы root/.ssh/авторизованные_клиенты, то этот пользователь без полномочий root сможет войти в систему как root на сервере - так, чтобы избежать это, только не добавляйте их ключ в корень файла author_keys.
Вы уже сталкивались с PermitRootLogin - который, конечно, должен быть включен на сервере. Вы можете (опционально) ограничить, кто может регистрироваться откуда (если вообще), добавив строку типа «AllowUsers root@ip.address user1@ip.address user2» - которая будет разрешать только root и user1 с определенного IP-адреса, но user2 может войти в систему из любого места. Вы можете расширить это с таким количеством комбинаций user/ip, как требуется.