Configuration de la connexion SSH sans mot de passe pour plusieurs serveurs distants à l'aide du script

Configuration de la connexion SSH sans mot de passe pour plusieurs serveurs distants à l'aide du script

L'authentification basée sur les clés SSH (également connue sous le nom d'authentification par clé publique) permet une authentification sans mot de passe et c'est une solution plus sécurisée et bien meilleure que l'authentification du mot de passe. Un avantage majeur de la connexion sans mot de passe SSH, sans parler de la sécurité est qu'elle permet l'automatisation de divers types de processus inter-serveurs.

Lecture connexe: Comment sécuriser et durcir le serveur OpenSSH

Dans cet article, nous montrerons comment créer une paire de clés SSH et copier la clé publique sur plusieurs hôtes Linux distants à la fois, avec un script shell.

Créer une nouvelle clé SSH dans Linux

Premièrement, générez la paire de clés SSH (la clé privée / identité qu'un client SSH utilise pour s'authentifier lors de la connexion à un serveur SSH distant et la clé publique stockée comme une clé autorisée sur un système distant exécutant un serveur SSH) en utilisant le ssh-keygen Commande comme suit:

# ssh-keygen 
Générer la clé SSH dans Linux

Créer un script shell pour les connexions distantes de Mulitple

Ensuite, créez un script shell qui aidera à copier une clé publique pour plusieurs hôtes Linux distants.

# vim ~ /.bac / ssh-copy.shot 

Copiez et collez le code suivant dans le fichier (remplacez les variables suivantes en conséquence NOM D'UTILISATEUR - le nom d'utilisateur avec lequel se connecter, Host_file - un fichier qui contient la liste des noms d'hôte ou des adresses IP, et Error_file - un fichier pour stocker toutes les erreurs de commande ssh).

#!/ bac / bash NOM D'UTILISATEUR= "racine" Host_file= "/ root / hosts" Error_file= "/ tmp / ssh-copy_error.txt "public_key_file =" 1 $ "si [ ! -f $ public_key_file]; puis écho "fichier '$ public_key_file' introuvable!"Sortie 1 fi si [ ! -f $ host_file]; puis écho "fichier '$ host_file' introuvable!"Exit 2 fi pour ip dans 'cat $ host_file'; faire ssh-copy-id -i $ public_key_file [e-mail protégé] $ ip 2> $ error_file result = $? si [$ result -eq 0]; Ensuite, Echo "" Echo "Clé publique a copié avec succès sur $ ip" echo "" else echo "$ (cat $ error_file)" Echo exit 3 fi echo "" fait 

Enregistrez le fichier et fermez-le.

Ensuite, faites le script exécutable avec le chod Commande comme indiqué.

# chmod + x ssh-copy.shot 

Maintenant, exécutez le ssh-copy.shot script et spécifiez votre fichier de clé publique comme le premier argument comme indiqué dans la capture d'écran:

# ./ ssh-copy.sh / root /.SSH / PROD-RSA.pub 
Exécuter le script de copie SSH

Ensuite, utilisez ssh-agent Pour gérer vos clés, qui maintient votre clé privée déchiffrée en mémoire et l'utilise pour authentifier les connexions. Après avoir commencé le ssh-agent, Ajoutez votre clé privée comme suit:

# eval "$ (ssh-agent -s)" # ssh-add ~ /.ssh / prod_rsa 
Démarrer l'agent SSH

Connectez-vous au serveur Linux distant sans mot de passe

Vous pouvez maintenant vous connecter à l'un de vos hôtes distants sans fournir de mot de passe pour l'authentification des utilisateurs SSH. De cette façon, vous pouvez automatiser les processus inter-serveur.

# ssh [e-mail protégé] 
Connexion sans mot de passe SSH

C'est tout ce que nous avions pour toi! Si vous avez des contributions à apporter particulièrement à l'amélioration du script de shell, faites-le-nous savoir via le formulaire de rétroaction ci-dessous.