Comment configurer les connexions SSH personnalisées pour simplifier l'accès à distance

Comment configurer les connexions SSH personnalisées pour simplifier l'accès à distance

Ssh (Client SSH) est un programme pour accéder à distance à une machine, il permet à un utilisateur d'exécuter des commandes sur un hôte distant. C'est l'une des méthodes les plus recommandées pour se connecter à un hôte distant, car il est conçu pour fournir des communications cryptées sécurisées entre deux hôtes non fiables sur un réseau sans sécurité.

Ssh utilise à la fois un fichier de configuration spécifique à l'utilisateur (personnalisé). Dans ce tutoriel, nous expliquerons comment créer un fichier de configuration SSH personnalisé et utiliser certaines options pour se connecter aux hôtes distants.

Exigences:

  1. Vous devez avoir installé le client OpenSSH sur votre bureau Linux.
  2. Comprendre les options courantes utilisées pour les connexions distantes via SSH.

Fichiers de configuration du client ssh

Vous trouverez ci-dessous les emplacements des fichiers de configuration du client SSH:

  1. / etc / ssh / ssh_config - C'est le fichier de configuration par défaut à l'échelle du système. Il contient des paramètres qui s'appliquent à tous les utilisateurs de la machine client SSH.
  2. ~ /.ssh / config ou $ Home /.ssh / config - est le fichier de configuration spécifique à l'utilisateur / personnalisé. Il a des configurations qui s'appliquent à un utilisateur spécifique. Il remplace donc les paramètres par défaut dans le fichier de configuration à l'échelle du système. Ceci est le fichier que nous créerons et utiliserons.

Par défaut, les utilisateurs sont authentifiés dans SSH à l'aide de mots de passe, cependant, vous pouvez configurer SSH sans mot de passe Login à l'aide de SSH Keygen en 5 étapes simples.

Note: Dans le cas où le répertoire ~ /.ssh n'existe pas sur votre système de bureau, créez-le avec les autorisations suivantes.

$ mkdir -p ~ /.ssh $ chmod 0700 ~ /.ssh 

Le chod La commande ci-dessus implique que seul l'utilisateur peut avoir lu, écrire et exécuter des autorisations sur le répertoire comme requis par les paramètres SSH.

Comment créer un fichier de configuration SSH spécifique à l'utilisateur

Ce fichier n'est généralement pas créé par défaut, vous devez donc le créer avec les autorisations de lecture / écriture pour uniquement l'utilisateur.

$ touch ~ /.ssh / config $ chmod 0700 ~ /.ssh / config 

Le fichier ci-dessus contient des sections définies par les spécifications des hôtes, et une section n'est appliquée qu'aux hôtes qui correspondent à l'un des modèles définis dans la spécification.

Le format conventionnel de ~ /.ssh / config est le suivant, et toutes les lignes vides ainsi que les lignes en commençant par '#' sont considérés comme des commentaires:

Host host1 ssh_option1 = value1 ssh_option2 = value1 value2 ssh_option3 = value1 host host2 ssh_option1 = value1 ssh_option2 = value1 value2 host * ssh_option1 = value1 ssh_option2 = value1 value2 

Du format ci-dessus:

  1. Hôte hôte1 - est une définition d'en-tête pour hôte1, C'est là qu'une spécification d'hôte commence et elle se termine par la définition de l'en-tête suivante, Hôte hôte2 faire une section.
  2. hôte1, host2 sont simplement des alias hôtes à utiliser sur la ligne de commande, ce ne sont pas les noms d'hôte réels des hôtes distants.
  3. Les options de configuration telles que ssh_option1 = valeur1, SSH_OPTION2 = Value1 Value2 Appliquer à un hôte apparié et doit être en retrait pour une mise en forme bien organisée.
  4. Pour une option comme SSH_OPTION2 = Value1 Value2, la valeur valeur 1 est considéré d'abord, alors valeur2.
  5. La définition de l'en-tête Héberger * (où * est un modèle - le joker qui correspond à zéro ou plus de caractères) correspondra à zéro ou plus hôtes.

En considérant toujours le format ci-dessus, c'est ainsi que SSH lit le fichier de configuration. Si vous exécutez une commande ssh pour accéder à distance hôte1 ainsi:

$ ssh host1 

La commande SSH ci-dessus fera les choses suivantes:

  1. Faites correspondre l'alias de l'hôte hôte1 Dans le fichier config et applique les options définies sous l'en-tête de définition, Hôte hôte1.
  2. puis passe à la section hôte suivante, Hôte hôte2 et constate que le nom fourni sur la ligne de commande ne correspond pas, donc aucune option n'est utilisée à partir d'ici.
  3. Il passe à la dernière section, Héberger *, qui correspond à tous les hôtes. Ici, il applique toutes les options de cette section à la connexion hôte. Mais il ne peut pas remplacer les valeurs d'options qui sont déjà utilisées dans la ou les sections précédentes.
  4. de même pour host2.

Comment utiliser le fichier de configuration SSH spécifique à l'utilisateur

Une fois que vous avez compris comment fonctionne le fichier de configuration du client SSH, vous pouvez le créer comme suit. N'oubliez pas d'utiliser des options et des valeurs (alias hôtes, numéros de port, noms d'utilisateur et ainsi de suite) applicables à l'environnement de votre serveur.

Ouvrez le fichier de configuration avec votre éditeur préféré:

$ vi ~ /.ssh / config 

Et définir les sections nécessaires:

Héberger Fedora25 Nom d'hôte 192.168.56.15 Port 22 ForwardX11 Aucun hôte centos7 Nom d'hôte 192.168.56.10 Port 22 ForwardX11 Aucun hôte ubuntu Nom d'hôte 192.168.56.5 Port 2222 ForwardX11 Oui Hôte * User Tecmint IdentityFile ~ /.SSH / ID_RSA Protocole 2 Compression Oui ServeraliveInterval 60 ServeraliveCountMax 20 Loglevel Info 

Une explication détaillée des options de configuration SSH ci-dessus.

  1. Nom d'hôte - Définit le nom d'hôte réel auquel vous connecter, vous pouvez également utiliser une adresse IP numérique, elle est également autorisée (à la fois sur la ligne de commande et dans Nom d'hôte Caractéristiques).
  2. Utilisateur - Spécifie l'utilisateur pour se connecter comme.
  3. Port - Définit le numéro de port pour se connecter sur l'hôte distant, la valeur par défaut est 22. Utilisez le numéro de port configuré dans le fichier de configuration SSHD de l'hôte distant.
  4. Protocole - Cette option définit les versions de protocole que SSH devrait prendre en charge par ordre de préférence. Les valeurs habituelles sont '1' et '2', Plusieurs versions doivent être séparées des virgules.
  5. File d'identité - Spécifie un fichier à partir duquel l'identité d'authentification DSA, ED25519, RSA ou ECDSA de l'utilisateur est lue.
  6. Avantx11 - Définit si les connexions X11 seront automatiquement redirigées sur le canal sécurisé et le jeu d'affichage. Il a deux valeurs possibles "Oui" ou "Non".
  7. Compression - il est utilisé pour définir la compression pendant la connexion distante avec le "Oui" valeur. La valeur par défaut est "Non".
  8. ServeraliveInterval - Définit un intervalle de délai d'expiration en quelques secondes, si aucune réponse (ou données) n'a été reçue du serveur, SSH enverra un message via le canal crypté pour demander une réponse du serveur. La valeur par défaut est 0, ce qui signifie qu'aucun message ne sera envoyé au serveur, ou 300 Si l'option BatchMode a été définie.
  9. ServeraliveCountMax - Définit le nombre de messages Alive Server qui peuvent être envoyés sans que SSH reçoive aucune réponse du serveur.
  10. Logevel - Définit le niveau de verbosité qui est utilisé lors de la journalisation des messages de SSH. Les valeurs autorisées comprennent: silencieux, fatal, erreur, info, verbose, debug, debug1, debug2 et debug3. Et la valeur par défaut est des informations.

La façon standard de se connecter à tout hôte Linux distant (CentOS 7 - dans mon cas), défini dans la section deux du fichier de configuration ci-dessus, nous tapons normalement la commande ci-dessous:

$ ssh -i ~ /.ssh / id_rsa -p 22 [e-mail protégé] 

Cependant, avec l'utilisation du fichier de configuration du client SSH, nous pouvons simplement taper la commande suivante:

$ ssh CentOS7 

Vous pouvez trouver plus d'options et d'exemples d'utilisation dans la page SSH Client Config Man:

$ man ssh_config 

C'est tout pour l'instant, dans ce guide, nous vous avons expliqué comment utiliser un fichier de configuration client SSH spécifique à l'utilisateur (personnalisé) dans Linux. Utilisez le formulaire de rétroaction ci-dessous pour nous réécrire concernant cet article.