3.3 Δημιουργία SSH Key 🔑

Βήμα 1: Είσαι ως ansible user;

# Αν δεν είσαι ήδη:
sudo su - ansible

# Πρέπει να βλέπεις:
# ansible@ansible-controller:~$

Βήμα 2: Δημιουργία SSH Key Pair

# Δημιουργία ed25519 key
ssh-keygen -t ed25519 -C "ansible@ansible-controller"

# Θα σε ρωτήσει:
# Enter file in which to save the key (/home/ansible/.ssh/id_ed25519):
# → πάτα ENTER (αποδέξου το default)

# Enter passphrase (empty for no passphrase):
# → πάτα ENTER (κενό για automation!)

# Enter same passphrase again:
# → πάτα ENTER ξανά

Αναμενόμενο Output:

Generating public/private ed25519 key pair.
Your identification has been saved in /home/ansible/.ssh/id_ed25519
Your public key has been saved in /home/ansible/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ansible@ansible-controller
The key's randomart image is:
+--[ED25519 256]--+
|        ..       |
|       ...       |
|      .o...      |
+----[SHA256]-----+

Βήμα 3: Έλεγχος των Keys

# Δες τα αρχεία που δημιουργήθηκαν
ls -la ~/.ssh/

# Αναμενόμενο:
# -rw------- 1 ansible ansible  419 ... id_ed25519      ← private key
# -rw-r--r-- 1 ansible ansible  105 ... id_ed25519.pub  ← public key

# Δες το PUBLIC key (αυτό θα στείλουμε στους servers)
cat ~/.ssh/id_ed25519.pub

# Κάτι σαν:
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... ansible@ansible-controller

⚠️ ΚΡΙΣΙΜΟ — Private vs Public Key:

id_ed25519      → PRIVATE key (permissions: 600)
                  ΠΟΤΕ μην το μοιραστείς με κανέναν!
                  Μένει ΠΑΝΤΑ στον controller.

id_ed25519.pub  → PUBLIC key (permissions: 644)
                  Αυτό στέλνουμε στους managed servers.
                  Μπορείς να το μοιραστείς ελεύθερα.

Βήμα 4: Επαλήθευση Permissions

# Τα permissions πρέπει να είναι ΑΚΡΙΒΩΣ έτσι:
ls -la ~/.ssh/

# id_ed25519     → -rw------- (600) ✅
# id_ed25519.pub → -rw-r--r-- (644) ✅

# Αν χρειαστεί να τα διορθώσεις:
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

Βήμα 5: Προσθήκη στο authorized_keys (για τον ίδιο τον controller)

# Χρήσιμο αν θέλουμε η Ansible να τρέχει tasks
# και στον ίδιο τον controller (localhost)
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

# Επαλήθευση
cat ~/.ssh/authorized_keys

Έλεγχος 3.3

✅ ed25519 key pair δημιουργήθηκε
✅ Private key: /home/ansible/.ssh/id_ed25519 (600)
✅ Public key:  /home/ansible/.ssh/id_ed25519.pub (644)
✅ authorized_keys δημιουργήθηκε (600)