Ansible – private/public keys za SSH spajanje

Tema

Kako koristiti private (secret) i public keys za upravljanje Ansibleom.

Postupak – tl;dr

  • kreiraj ključeve (key pair)
    • npr. : ssh-keygen -q -b 2048 -t rsa -N "" -f /etc/ansible/id_rsa
      • kreirat će “id_rsa” (secret) i “id_rsa.pub” (logično – public)
    • možeš i ne moraš staviti lozinku, ovisno o razini osjetljivosti servera, tvojoj paranoji, želju da koristiš skripte, …
  • privatni ključ (secret key) neka bude npr. u datoteci
    • /etc/ansible/ansiblekljuc
    • sudo chmod 600 /etc/ansible/ansiblekljuc
  • javni ključ (public key; datoteku ansiblekljuc.pub koju je kreirao ssh_keygen) kopiraj na svaki server kojime želiš upravljati
    • dodaj ga u datoteku (po potrebi ju kreiraj) korisnicima koje koristiš s Ansiblesanom
    • ~/.ssh/authorized_keys
    • chmod 600 ~/.ssh/authorized_keys
    • npr. to bi bilo:
      • /home/mirko/.ssh/authorized_keys
      • /root/.ssh/authorized_keys
  • editiraj /etc/ansible/hosts
  • za svaku grupu računala dodaj stavku
    • ansible_ssh_private_key_file : /etc/ansible/ansiblekljuc
    • npr. za YAML oblik:

    • grp_vamo:
        vars:
          ansible_ssh_private_key_file : /etc/ansible/ansiblekljuc
        hosts:
          mirkopc:
            ansible_port: 22
            ansible_host: 192.168.1.11
            ansible_user: korisnik
              # ovo možeš kREMirati ... ansible_password: user123
      
    • A ako koristiš .INI oblik datoteke /etc/ansible/hosts:
    • [grp_vamo]
      192.168.1.11
      mirkopc ansible_port=22 ansible_host=192.168.1.11 ansible_user=korisnik
      
      [grp_vamo:vars]
      ansible_ssh_private_key_file=/etc/ansible/ansiblekljuc
      
      #
  • prije uporabe spoji se SSH-om na svaki remote server da uđe u known_hosts
    • ssh mirko@mirkopc -p 22
    • kad te pita za fingerprint ne misli na pornhub nego odgovori “yes” i stavit će mašinu u known_hosts
  • nakon toga isprobaj
    • ansible <%ComputerName%> -m ping
    • ansible <%ComputerName%> -a "whoami"
    • ansible <%ComputerName%> -a "whatisthepurposeoflife"
    • ssh -v mirko@<%ComputerName%> -p 22 -i /etc/ansible/private-public-keys/ansiblePrivateKey

To bi bilo kao to, jelte.

Razno

  • Na žalost, s nekim mašinama mi to nije uspjelo. Zašto? Ne znam. Još uvijek sam premali da bih to znao. U takvim slučajevima sam jednostavno koristio ansible_password: user123 u datoteci /etc/ansible/hosts za te mašine dok ne naučim
  • Javni ključ (public key, ansiblekljuc.pub) koji treba zakeljiti u authorized_keys izgleda ovako nekako:
ssh-rsa ovdjesadaidegomilanečegablabla== root@glavnipc

Slike

Video


ansible xansible ssh xssh private key privatekey xprivate xkey public key publickey xpublic secret xsecret šekret nije pornhub ansiblesan

image_pdfimage_print

1 thought on “Ansible – private/public keys za SSH spajanje

Comments are closed.