This should work "out the box", and should require nothing further then putting users public keys in their .ssh/authorized_keys file for the corresponding user on the server. (If this file does not exist for the user, make it !)
The only thing to be aware of is that if the non-root user public key is added to the servers root/.ssh/authorized_keys, then that non-root user will be able to log in as root on the server - so to avoid this, just don't add their key to roots authorized_keys file.
You have already come across PermitRootLogin - which, of-course, needs to be enabled on the server. You can (optionally) limit who can log from where (if at all) by adding a line like "AllowUsers email@example.com firstname.lastname@example.org user2" - which will only allow root and user1 from a particular IP address, but user2 can log in from anywhere. You can extend this with as many user/ip combinations as required.