Halo, kalau kamu merasa tulisan saya ngebantu, kamu bisa ucapkan terima kasih lewat saweria.

If you feel this website help you, you can donate at saweria.



Contoh Kasus

“Sysadmin lama saya masih bisa akses server karena pub key dia masih terdaftar di authorized_keys, Gimana cara hapusnya di semua server secara cepat??”


Hapus pub key di Semua Server dengan Ansible

  1. Buat file hosts
[server]
192.168.1.2

[server:vars]
ansible_user=admin
ansible_port=123
ansible_ssh_private_key_file=/home/ipang/.ssh/do/id_rsa
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
host_key_checking=False
  1. Buat file yml, remove-and-add-key.yml
---
- hosts: server


  tasks:
  #first, we need to add new key
  #or you can skip this, if you key already there
  - name: Add new key
    authorized_key:
      user: admin
      key: "{{ lookup('file', '/home/ipang/.ssh/do/new/id_rsa.pub') }}"
 
  - name: Remove old key
    authorized_key:
      user: admin
      path: /home/admin/.ssh/authorized_keys
      state: absent
      key: "{{ lookup('file', '/home/ipang/.ssh/do/old_id_rsa.pub') }}"
  1. Run ansible-playbook -i hosts remove-and-add-key.yml
Add & Remove Pub Key Success

Add & Remove Pub Key Success

Notes:

  1. Bagaimana jika kamu mau menghapus beberapa key sekaligus
---
- hosts: server


  tasks:
  - name: Remove old key 1
    authorized_key:
      user: admin
      path: /home/admin/.ssh/authorized_keys
      state: absent
      key: "{{ lookup('file', '/home/ipang/.ssh/do/old_id_rsa1.pub') }}"

  - name: Remove old key 2
    authorized_key:
      user: admin
      path: /home/admin/.ssh/authorized_keys
      state: absent
      key: "{{ lookup('file', '/home/ipang/.ssh/do/old_id_rsa2.pub') }}"

  - name: Remove old key 3
    authorized_key:
      user: admin
      path: /home/admin/.ssh/authorized_keys
      state: absent
      key: "{{ lookup('file', '/home/ipang/.ssh/do/old_id_rsa3.pub') }}"
  1. Menghapus pub key beberapa user sekaligus? Bisa dengan 1 file yaml kalau kamu mengizinkan root login, jika tidak, lebih mudah membuat 2 file yaml terpisah
---
- hosts: server
   # remove-admin-key.yml
   # remove old key on admin
  tasks:
  - name: Remove old key 1
    authorized_key:
      user: admin
      path: /home/admin/.ssh/authorized_keys
      state: absent
      key: "{{ lookup('file', '/home/ipang/.ssh/do/old_id_rsa1.pub') }}"

Untuk user lain kamu bisa buat 1 file lagi

---
- hosts: server
   # remove-mimin-key.yml
   # remove old key on mimin
  tasks:
  - name: Remove old key 1
    authorized_key:
      user: mimin
      path: /home/mimin/.ssh/authorized_keys
      state: absent
      key: "{{ lookup('file', '/home/ipang/.ssh/do/old_mimin.pub') }}"