Lorsque nous travaillons avec un serveur distant ou un VPS (Virtual Private Server), établir une connexion sécurisée devient primordial. SSH (Secure Shell) offre une solution fiable en utilisant une paire de clés, comprenant une clé privée et une clé publique. Cet article guide à travers le processus de configuration SSH sur la machine locale en vue de se connecter sans mot de passe à un serveur distant.
Étape 1: Génération de la Clé ssh
Pour générer une paire de clés SSH sur votre machine locale, utilisez la commande `ssh-keygen` :
ssh-keygen
Lorsque vous êtes invité à spécifier le fichier où enregistrer la clé, appuyez sur Entrée pour utiliser le répertoire par défaut. Ensuite, vous serez invité à entrer et confirmer une passphrase pour sécuriser votre clé privée.
Étape 2: Compréhension des Clés Générées
Après la génération, deux fichiers seront créés dans le répertoire .ssh/ : id_rsa (clé privée) et id_rsa.pub (clé publique).
En vérifiant le contenu du répertoire .ssh :
cd ~/.ssh
ls
Rôle de la Clé Privée (id_rsa)
La clé privée est confidentielle et ne doit jamais être partagée. Elle permet de déchiffrer les messages chiffrés par la clé publique correspondante.
Rôle de la Clé Publique (id_rsa.pub)
La clé publique, par contre, peut être partagée librement. Elle permet à d'autres systèmes de vérifier l'identité du détenteur de la clé privée associée.
Connexion à un Serveur Distant
Maintenant, essayons de nous connecter à un serveur distant avec l'adresse "172.234.216.110" . Actuellement, l'accès est protégé par un mot de passe.
Copie de la Clé Publique sur le Serveur
Il existe deux méthodes pour copier la clé publique sur le serveur.
Méthode 1: Copie Manuelle
Utilisez la commande "cat" pour afficher le contenu de la clé publique, puis copiez-le sur le serveur dans le fichier ~/.ssh/authorized_keys :
cat ~/.ssh/id_rsa.pub
On prépare notre serveur distant pour la copie manuelle.
Connectez-vous au serveur distant via SSH et assurez-vous que le répertoire .ssh existe dans le répertoire personnel de l'utilisateur :
mkdir -p ~/.ssh
Si le répertoire .ssh existe déjà, vous pouvez passer à l'étape suivante. Ensuite, créez le fichier authorized_keys s'il n'existe pas :
touch ~/.ssh/authorized_keys
nano ~/.ssh/authorized_keys
Copiez et collez votre clé publique dans le fichier, puis sauvegardez.
“ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC+o9i+j60+LJxAtN4XCbOo10SpfjUssQt+ZMyhp6ZloVKUi/JsGmZ1j/9m052DLHPCKiDhwmJ75XjkCb/SqxkeBKBEiSgBeoU7YNtJOpYO4FRPr4e1gnhyZLvK/ZZNy2Wq6nay51bcMEa4RwYxV/Jenl27KbwhmR8SripCvW1mACsHXKJ82rkHDdlw+g3ugEH6BlEBHCp7KxREYp07P8Vh5GB5rKowCM0p2N5jD7CWoE+JZzxTq2m1Z+/2vA+I7EFkZF9WQG25W3lP7qpCicI8cAcGS3SPtEnlpvLsWIgYmqPnMs0e19tucZK4f4u2asGz4wZW7Slc+0Zp4hZrXZX3FSR/PZGt6xY8t8lnnsEA2PIFQiyY+wIGtq391zUSnCulyqzb4UBbgdxbrKyPgIHSuPn3J5tLWGSJhfaVcn+42hlMNKxF8oLvAyrpulSp/CZ6Bwl3E6XHSWgePjlymHD/EmmGKUikisOODW0oqpsVpj3kbwfLAZK/8ZVDurhZOi8= local@localhost
”
Maintenant, nous pouvons nous connecter à notre serveur distant depuis notre machine locale sans que le mot de passe nous soit demandé :
Méthode 2: Utilisation de ssh-copy-id
Une méthode plus rapide consiste à utiliser la commande ssh-copy-id. Exemple :
Assurez-vous que l'agent SSH est en cours d'exécution sur votre machine locale
eval $(ssh-agent)
Ensuite, ajoutez votre clé privée à l'agent SSH. Vous serez invité à entrer votre passphrase, renseignez-la pour ne pas la saisir à chaque connexion :
ssh-add ~/.ssh/id_rsa
on vous demandera votre passphrase renseigner la .Pour ne pas que à chaque fois elle vous soit demandé
Et enfin tapez cette commande pour vous qui va copier votre clé public sur la machine distante automatiquement
ssh-copy-id -i ~/.ssh/id_rsa.pub server@172.234.216.110
Cette commande transfère automatiquement la clé publique sur le serveur et met à jour le fichier `authorized_keys`.
Conclusion
En maîtrisant la configuration SSH, non seulement nous améliorons la sécurité de nos connexions, mais nous facilitons également l'automatisation des déploiements et autres processus, contribuant ainsi à une gestion plus efficace des serveurs distants. La connexion sécurisée devient une compétence essentielle pour tout administrateur système.
#linode #akamai #ubuntu #linux #eroamba #vps #ssh