Autres

Exécuter des scripts automatisés sur SSH

Le protocole SSH (Secure Shell) est devenu une norme pour l’accès distant sécurisé, mais son utilisation peut parfois poser des défis, en particulier lorsque l’on souhaite exécuter des scripts automatisés. L’un des principaux enjeux réside dans le fait que la connexion par défaut nécessite souvent une saisie manuelle de mot de passe, ce qui peut interférer avec l’automatisation. Cet article vous guidera à travers les étapes nécessaires pour mettre en place une méthode efficace et sécurisée pour exécuter des scripts sans intervention humaine.

Comprendre le fonctionnement de SSH

SSH est un protocole utilisé pour établir des connexions sécurisées entre un client et un serveur. Bien que vous puissiez facilement transférer des fichiers avec des outils comme scp ou sftp, ces méthodes nécessitent une authentification par mot de passe, ce qui n’est pas idéal pour les tâches répétitives automatisées. Chaque commande scp établit une nouvelle connexion SSH, et cela implique de ressaisir le mot de passe à chaque fois. Utiliser ces outils dans des scripts non supervisés entraîne donc des interruptions indésirables.

La solution : Authentification par clés SSH

Pour remédier à ce problème, il est crucial de passer à une méthode d’authentification sans mot de passe, qui repose sur des clés SSH. Cela implique de générer une paire de clés : une clé publique et une clé privée. La clé publique est placée sur le serveur distant, tandis que la clé privée reste stockée localement et en toute sécurité. Ce mécanisme non seulement facilite la connexion sans mot de passe, mais renforce également la sécurité des accès distants.

A lire :  Combien gagne un administrateur de projet ?

Création d’une paire de clés SSH

Pour générer une paire de clés, utilisez la commande suivante dans votre terminal :

Cette commande crée une clé RSA de 2048 bits. Suivez les instructions pour enregistrer les clés générées et, pour des raisons de sécurité, choisissez une phrase secrète solide. Les fichiers de clé seront par défaut placés dans le répertoire ~/.ssh.

Installation de la clé publique sur le serveur distant

Après avoir généré la paire de clés, la prochaine étape consiste à copier la clé publique vers le serveur distant. Cela peut être facilement réalisé avec la commande suivante :

Cette commande s’assurera que la clé publique est ajoutée au fichier « ~/.ssh/authorized_keys » du serveur distant, permettant ainsi d’accéder à cette machine sans avoir besoin de mot de passe lors des connexions ultérieures.

Exécuter des scripts automatisés sur SSH

Une fois que l’authentification par clé est en place, vous pouvez exécuter des scripts sur le serveur distant sans interruption. Que vous souhaitiez automatiser des transferts de fichiers, des sauvegardes, ou des mises à jour, vous n’aurez plus besoin d’entrer votre mot de passe à chaque exécution. Les commandes SSH, scp ou sftp utilisées dans vos scripts fonctionneront sans aucune sollicitation d’authentification, car l’agent SSH prendra en charge les clés privées. Voici un exemple simple de commande pour exécuter un script distant :

Cela permet l’exécution directe d’un script sur le serveur distant, facilitant ainsi l’automatisation des tâches répétitives.

Utilisation de l’agent SSH

Pour éviter d’entrer la phrase secrète chaque fois que vous accédez à votre clé privée, l’utilisation de l’agent SSH est fortement recommandée. Cet outil maintient vos clés en mémoire et permet d’automatiser l’authentification. Pour démarrer l’agent, utilisez :

Ajoutez ensuite votre clé privée avec :

Avec l’agent en cours d’exécution, vos connexions SSH ne nécessiteront plus de saisie manuelle de phrases secrètes, accélérant ainsi considérablement vos flux de travail automatisés.

Désactiver l’authentification par mot de passe

Pour renforcer la sécurité, il est judicieux de désactiver l’authentification par mot de passe sur votre serveur distant. Cela peut être fait en modifiant le fichier de configuration SSH :

Changez la directive PasswordAuthentication de `yes` à `no` pour interdire l’accès basé sur un mot de passe. Ainsi, seules les connexions authentifiées par des clés publiques seront acceptées, augmentant la protection contre les accès non autorisés.

FAQ

1. Qu’est-ce que SSH et pourquoi l’utiliser ?
SSH (Secure Shell) est un protocole qui permet une communication sécurisée entre un utilisateur et un serveur, généralement utilisé pour l’accès à distance et le transfert de fichiers.

2. Quels sont les avantages de l’authentification par clés SSH ?
L’authentification par clés SSH permet d’éviter de saisir un mot de passe à chaque connexion, elle améliore la sécurité et facilite l’automatisation des scripts sur des serveurs distants.

3. Comment puis-je sécuriser davantage mes connexions SSH ?
En plus d’utiliser des clés SSH, vous pouvez également désactiver l’authentification par mot de passe, utiliser des phrases secrètes complexes et configurer des règles de pare-feu pour restreindre l’accès aux seuls utilisateurs ou adresses approuvés.