Setting private_key to null uses the local ssh-agent as a fallback for authentication. Using the public_key instead of the private_key for ssh -i lets the agent select the right identity if loaded. tested with a yubikey