How to access Ansible remote machine using SSH user and key?

How to access Ansible remote machine using SSH user and key?

There are following ways, you can autheticte linux remote server using Ansible.

Method 1 – Password Less authentication

SSH Passwordless Login Using SSH Keygen in 5 Easy Steps

If You want to automate this process using Ansible in mutiple machine, follow this
https://everythingshouldbevirtual.com/ansible-ssh-key-distribution-for-password-less-ssh/

Method 2 – SSH key file using command line

ansible-playbook -i hosts playbook.yml --key-file=remote-access.pem -u ec2-user --become

Method 3 – SSH key file in the inventory file:

myHost1 ansible_ssh_private_key_file=remote-access.pem ansible_user=ec2-user
myHost2 ansible_ssh_private_key_file=remote-access.pem ansible_user=ec2-user

Method 4 – SSH key file in the host_vars:

# hosts_vars/myHost1.yml
ansible_ssh_private_key_file: ~/.ssh/mykey1.pem
ansible_user=ec2-user
# hosts_vars/myHost2.yml
ansible_ssh_private_key_file: ~/.ssh/mykey2.pem
ansible_user=ec2-user

Method 5 – SSH key file in the group_vars:

# hosts_vars/myHost1.yml
ansible_ssh_private_key_file: ~/.ssh/mykey1.pem
ansible_user=ec2-user
# hosts_vars/myHost2.yml
ansible_ssh_private_key_file: ~/.ssh/mykey2.pem
ansible_user=ec2-user

Method 6 – SSH key file in the vars section of your play:

- hosts: myHost
remote_user: ubuntu
vars_files:
- vars.yml
vars:
ansible_ssh_private_key_file: "{{ key1 }}"
tasks:
- name: Echo a hello message
command: echo hello

Method 7 – SSH key file in the ansible.cfg:

[defaults]
inventory: <YOUR INVENTORY>
remote_user = <YOUR USER>
private_key_file = <PATH TO KEY_FILE>