Configurer un compte SSH sur un hôte pour automatiser des actions avec n8n
Procédure de création d'un compte Linux utilisable par n8n pour automatiser des actions d'administration/maintenance via SSH. Le compte aura les droits sudo et pourra se connecter sans mot de passe, seulement à l'aide d'une clé SSH.
Les manipulations ici ont été réalisées sur AlmaLinux 9.
Instructions
- Générer une clé SSH et stocker la clé privée dans un endroit sûr :
ssh-keygen -t ed25519 -f n8n_key -C "n8n" -N ""
- Créer le compte n8n sur la machine :
sudo useradd -m -s /bin/bash n8n sudo install -d -m 700 -o n8n -g n8n /home/n8n/.ssh
- Créer le fichier
authorized_keyssur le compte n8n avec la clé publique dedans :echo "ssh-ed25519 AAAAC4NzfC1lZDI5NTE5BBBBID0G/+WnG2bGCvpSXWU8rErUDwC6/0bR4t/AtlwQ7e+P n8n" > /home/n8n/.ssh/authorized_keys
- Donner les permissions adéquates sur le fichier :
sudo chown n8n:n8n /home/n8n/.ssh/authorized_keys sudo chmod 600 /home/n8n/.ssh/authorized_keys sudo restorecon -R /home/n8n/.ssh
- Faire le test suivant :
grep -i '^Include' /etc/ssh/sshd_config
- Si la résultat de la commande est
grep -i '^Include' /etc/ssh/sshd_config, alors paramètrer SSH comme ceci :sudo tee /etc/ssh/sshd_config.d/60-n8n.conf > /dev/null <<'EOF' Match User n8n PasswordAuthentication no AuthenticationMethods publickey EOF
- Redémarrer le service sshd :
sudo sshd -t && sudo systemctl reload sshd
- Désactiver le mot de passe pour le sudo :
echo 'n8n ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/n8n sudo chmod 440 /etc/sudoers.d/n8n sudo visudo -cf /etc/sudoers.d/n8n
- Configurer la clé publique de l'hôte sur n8n et tester la connexion