GNU/Linux >> Tutoriels Linux >  >> Linux

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

SSH (Client SSH ) est un programme d'accès à 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 elle est conçue pour fournir des communications cryptées sécurisées entre deux hôtes non fiables sur un réseau non sécurisé.

SSH utilise à la fois un fichier de configuration à l'échelle du système et un fichier de configuration spécifique à l'utilisateur (personnalisé). Dans ce didacticiel, nous expliquerons comment créer un fichier de configuration ssh personnalisé et utiliser certaines options pour se connecter à des 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 à distance 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 – il s'agit du 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 cliente 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. C'est le fichier que nous allons créer et utiliser.

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

Remarque :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 chmod La commande ci-dessus implique que seul l'utilisateur peut avoir des autorisations de lecture, d'écriture et d'exécution 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 l'utilisateur uniquement.

$ 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 la suivante, et toutes les lignes vides ainsi que les lignes 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

À partir du format ci-dessus :

  1. Hôte hôte1 – est une définition d'en-tête pour host1 , c'est là qu'une spécification d'hôte commence et se termine par la définition d'en-tête suivante, Host host2 faire une section.
  2. hôte1 , hôte2 sont simplement des alias d'hôtes à utiliser sur la ligne de commande, ce ne sont pas les noms d'hôtes réels des hôtes distants.
  3. Les options de configuration telles que ssh_option1=value1 , ssh_option2=valeur1 valeur2 s'appliquent à un hôte correspondant et doivent être mis en retrait pour un formatage bien organisé.
  4. Pour une option telle que ssh_option2=value1 value2 , la valeur value1 est considéré en premier, puis value2 .
  5. La définition d'en-tête Hôte * (où * est un modèle - caractère générique qui correspond à zéro ou plusieurs caractères) correspondra à zéro ou plusieurs hôtes.

Toujours en considérant le format ci-dessus, voici comment ssh lit le fichier de configuration. Si vous exécutez une commande ssh pour accéder à distance à host1 comme ça :

$ ssh host1

La commande ssh ci-dessus fera les choses suivantes :

  1. faire correspondre l'alias d'hôte host1 dans le fichier de configuration et applique les options définies sous l'en-tête de définition, Host host1 .
  2. passe ensuite à la section suivante de l'hôte, Hôte hôte2 et trouve 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ôte * , 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 des options déjà utilisées dans la ou les sections précédentes.
  4. Il en va de même pour host2 .

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

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

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

$ vi ~/.ssh/config

Et définissez les sections nécessaires :

Host fedora25
        HostName 192.168.56.15
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.56.10
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.56.5
        Port 2222
        ForwardX11 yes

Host *
        User tecmint
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        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 se connecter, alternativement, vous pouvez utiliser une adresse IP numérique, c'est également autorisé (à la fois sur la ligne de commande et dans HostName spécifications).
  2. Utilisateur – spécifie l'utilisateur sous lequel se connecter.
  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 doit prendre en charge par ordre de préférence. Les valeurs habituelles sont ‘1’ et ‘2’ , plusieurs versions doivent être séparées par des virgules.
  5. Fichier d'identité – spécifie un fichier à partir duquel l'identité d'authentification DSA, Ed25519, RSA ou ECDSA de l'utilisateur est lue.
  6. TransférerX11 – définit si les connexions X11 seront automatiquement redirigées via le canal sécurisé et l'ensemble DISPLAY. Il a deux valeurs possibles "oui" ou "non" .
  7. Compression – il est utilisé pour régler la compression lors de la connexion à distance avec le "oui" valeur. La valeur par défaut est "non" .
  8. ServerAliveInterval – définit un intervalle de temporisation en secondes après lequel si aucune réponse (ou donnée) n'a été reçue du serveur, ssh enverra un message via le canal crypté pour demander une réponse au 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 de serveur actif qui peuvent être envoyés sans que ssh ne reçoive de réponse du serveur.
  10. Niveau de journal – définit le niveau de verbosité utilisé lors de la journalisation des messages depuis ssh. Les valeurs autorisées incluent :QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 et DEBUG3. Et la valeur par défaut est INFO.

La manière standard de se connecter à n'importe quel hôte Linux distant (CentOS 7 - dans mon cas), définie dans la section deux du fichier de configuration ci-dessus, nous taperions normalement la commande ci-dessous :

$ ssh -i ~/.ssh/id_rsa -p 22 [email protected]

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 de manuel de configuration du client ssh :

$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é) sous Linux. Utilisez le formulaire de commentaires ci-dessous pour nous écrire concernant cet article.


Linux
  1. Comment configurer l'accès à MySQL à distance dans cPanel

  2. Comment utiliser le tunneling SSH pour accéder aux serveurs restreints

  3. Comment configurer l'authentification basée sur une clé SSH sous Linux

  4. Autoriser l'accès Ssh à distance ?

  5. Comment connecter un hôte distant à l'aide de la commande ssh

Comment SSH dans un répertoire particulier sous Linux

Comment configurer le transfert X11 à l'aide de SSH sous Linux

Comment configurer une bannière SSH personnalisée

Comment utiliser SSH pour se connecter à un serveur distant

Comment :Administration à distance de FreeBSD

Comment configurer le délai d'attente sur le client SSH Putty