@rrwo Check the debug output with rex -d to see which SSH implementation Rex picks up under the hood.
Key auth works and configured differently between Net::SSH (based on libssh2) and Net::OpenSSH (based on openssh binary).
If it works with the ssh binary manually, I guess Rex picks up Net::SSH under the hood either explicitly, or due to missing Net::OpenSSH. Then either libssh2 needs a hint which key to use, or Rex needs a hint to use Net::OpenSSH instead (which is the default, if present).