Android

Comment configurer la connexion ssh sans mot de passe

Les Tutos No. 13: Connexion SSH sans mot de passe

Les Tutos No. 13: Connexion SSH sans mot de passe

Table des matières:

Anonim

Secure Shell (SSH) est un protocole de réseau cryptographique utilisé pour une connexion sécurisée entre un client et un serveur et prend en charge divers mécanismes d'authentification. Les deux mécanismes les plus populaires sont l'authentification par mot de passe et l'authentification par clé publique.

Dans ce didacticiel, nous vous montrerons comment configurer une authentification basée sur une clé SSH ainsi que comment vous connecter à votre serveur Linux sans entrer de mot de passe.

Configuration de la connexion sans mot de passe SSH

Pour configurer une connexion SSH sans mot de passe sous Linux, tout ce que vous avez à faire est de générer une clé d'authentification publique et de l'ajouter au fichier des hôtes distants ~/.ssh/authorized_keys .

Les étapes suivantes décrivent le processus de configuration de la connexion SSH sans mot de passe:

  1. Vérifiez la paire de clés SSH existante.

    Avant de générer une nouvelle paire de clés SSH, vérifiez d'abord si vous avez déjà une clé SSH sur votre ordinateur client, car vous ne voulez pas écraser vos clés existantes.

    Exécutez la commande ls suivante pour voir si des clés SSH existantes sont présentes:

    ls -al ~/.ssh/id_*.pub

    S'il existe des clés existantes, vous pouvez soit les utiliser et ignorer l'étape suivante, soit sauvegarder les anciennes clés et en générer une nouvelle.

    Générez une nouvelle paire de clés SSH.

    La commande suivante va générer une nouvelle paire de clés SSH de 4096 bits avec votre adresse e-mail en tant que commentaire:

    ssh-keygen -t rsa -b 4096 -C "[email protected]"

    Appuyez sur Enter pour accepter l'emplacement et le nom de fichier par défaut:

    Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

    Ensuite, l'outil ssh-keygen vous demandera de taper une phrase secrète sécurisée. Que vous souhaitiez utiliser la phrase secrète, c'est à vous de décider, si vous choisissez d'utiliser la phrase secrète, vous obtiendrez une couche de sécurité supplémentaire. Dans la plupart des cas, les développeurs et les administrateurs système utilisent SSH sans mot de passe car ils sont utiles pour les processus entièrement automatisés. Si vous ne souhaitez pas utiliser la phrase secrète, appuyez simplement sur Enter

    Enter passphrase (empty for no passphrase):

    L'ensemble de l'interaction ressemble à ceci:

    Pour être sûr que les clés SSH sont générées, vous pouvez lister vos nouvelles clés privées et publiques avec:

    ls ~/.ssh/id_*

    /home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

    Copiez la clé publique

    Maintenant que vous avez généré une paire de clés SSH, afin de pouvoir vous connecter à votre serveur sans mot de passe, vous devez copier la clé publique sur le serveur que vous souhaitez gérer.

    La façon la plus simple de copier votre clé publique sur votre serveur consiste à utiliser une commande appelée ssh-copy-id . Sur le type de terminal de votre machine locale:

    ssh-copy-id remote_username@server_ip_address

    Vous serez invité à saisir le mot de passe remote_username :

    remote_username@server_ip_address's password:

    Une fois que l'utilisateur est authentifié, la clé publique sera ajoutée au fichier des clés authorized_keys utilisateur distant et la connexion sera fermée.

    Si, pour une raison quelconque, l'utilitaire ssh-copy-id n'est pas disponible sur votre ordinateur local, vous pouvez utiliser la commande suivante pour copier la clé publique:

    cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

    Connectez-vous à votre serveur à l'aide des clés SSH

    Après avoir effectué les étapes ci-dessus, vous devriez pouvoir vous connecter au serveur distant sans être invité à entrer un mot de passe.

    Pour le tester, essayez simplement de vous connecter à votre serveur via SSH:

    ssh remote_username@server_ip_address

    Si tout s'est bien passé, vous serez immédiatement connecté.

Désactivation de l'authentification par mot de passe SSH

Pour ajouter une couche de sécurité supplémentaire à votre serveur, vous pouvez désactiver l'authentification par mot de passe pour SSH.

Avant de désactiver l'authentification par mot de passe SSH, assurez-vous que vous pouvez vous connecter à votre serveur sans mot de passe et que l'utilisateur avec lequel vous vous connectez dispose des privilèges sudo.

Les didacticiels suivants décrivent comment configurer l'accès sudo:

  1. Connectez-vous à votre serveur distant avec les clés SSH, en tant qu'utilisateur avec les privilèges sudo ou root:

    ssh sudo_user@server_ip_address

    Ouvrez le fichier de configuration SSH /etc/ssh/sshd_config , recherchez les directives suivantes et modifiez comme suit:

    / etc / ssh / sshd_config

    PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

    Une fois que vous avez terminé, enregistrez le fichier et redémarrez le service SSH.

    Sur les serveurs Ubuntu ou Debian, exécutez la commande suivante:

    sudo systemctl restart ssh

    Sur les serveurs CentOS ou Fedora, exécutez la commande suivante:

    sudo systemctl restart sshd

Conclusion

Dans ce didacticiel, vous avez appris à configurer une authentification basée sur une clé SSH, vous permettant de vous connecter à votre serveur distant sans fournir de mot de passe utilisateur. Vous pouvez ajouter la même clé à plusieurs serveurs distants.

Nous vous avons également montré comment désactiver l'authentification par mot de passe SSH et ajouter une couche de sécurité supplémentaire à votre serveur.

sécurité ssh