Best practice - Passwordless authentication or use --ask-pass before executing playbook?

Hi,

Can someone please say me the best practice of connecting to remote machines from Ansible hosted machine? Would it be a password less authentication by adding ssh-keys or use --ask-pass every time I execute the playbook?

Thanks

ssh keys