Configuration de la connexion SSH sans mot de passe pour plusieurs serveurs distants à l'aide du script
- 1482
- 50
- Mohamed Brunet
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 OpenSSHDans 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-keygenGé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.pubExé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_rsaDé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.
- « 9 Commandes utiles pour obtenir des informations CPU sur Linux
- Comment passer (su) à un autre compte d'utilisateur sans mot de passe »