Comment gérer un fichier de configuration SSH sous Windows et Linux – CloudSavvy IT

Comment gérer un fichier de configuration SSH sous Windows et Linux – CloudSavvy IT

SSH

Votre fichier de configuration SSH vous permet de définir des paramètres spécifiques pour chaque hôte SSH, ce qui facilite la connexion à cet hôte. En définissant un grand nombre de ces propriétés communes ou inhabituelles dans le fichier, il élimine la nécessité de mémoriser cet ensemble de paramètres à chaque fois qu'une connexion est nécessaire.

Définition d'une connexion SSH

Si le fichier, ~/.ssh/config n'existe pas, vous pouvez continuer et créer ceci maintenant. En règle générale, ce fichier existe dans un fichier .ssh Répertoire "masqué", masqué uniquement parce que la plupart des systèmes d'exploitation ne montrent pas les répertoires précédés d'un .. De plus, ce répertoire est généralement situé dans son répertoire personnel ou dans le répertoire personnel de l'utilisateur exécutant ssh, d'où ~ notation, signifiant le répertoire personnel.

Il est important de garder un œil sur les autorisations dans le .ssh dossier. La plupart des clients SSH veulent que les fichiers soient en mode 600 dans ce dossier. Si vous faites référence à ce dossier à partir du sous-système Windows pour Linux, vous devez vous assurer de chmod 600 ~\.ssh\*

Alors, à quoi ressemble une simple connexion SSH dans ce fichier? Un exemple d'une configuration simple est ci-dessous.

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser

Comme vous pouvez le constater à partir de la configuration ci-dessus, c'est à peu près aussi basique que possible. En fait, vous pouvez omettre le port car il n'est pas strictement nécessaire car 22 est le port SSH par défaut. En définissant cette connexion, sur la ligne de commande, nous pouvons simplement faire ce qui suit.

ssh my-ssh-host

La connexion demandera généralement un mot de passe, car une connexion SSH ne doit pas être non protégée.

Clés publiques / privées

Presque tous les didacticiels ou guides de configuration SSH disponibles font généralement référence à des clés publiques / privées à un moment ou à un autre. Il s'agit du moyen préféré pour configurer une connexion SSH. Au lieu d'un mot de passe pouvant être piraté ou deviné, il est nécessaire d'obtenir réellement le fichier de clé. Ce didacticiel ne décrit pas comment les créer. Supposons donc qu'un ensemble existe déjà et soit correctement configuré. Comment pouvons-nous dire à notre configuration hôte d'utiliser ce fichier?

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser
	IdentityFile ~/.ssh/id_ed25519_myuser
	IdentitiesOnly yes

Il y a deux nouvelles commandes que nous avons introduites ici. le IdentityFile et le IdentitiesOnly commandes. Tout d'abord, nous devons dire à SSH où se trouve le fichier de clés, dans ce cas, nous avons stocké le fichier dans le fichier .ssh répertoire (méfiez-vous des autorisations). Deuxièmement, nous avons défini une balise nommée IdentitiesOnly. Cela indiquera à SSH de ne pas essayer tous les fichiers d'identité de ce dossier, mais uniquement celui défini. Par défaut, SSH parcourra et essaiera chaque fichier d'identité jusqu'à ce qu'il trouve le bon. Cela conduit souvent à un «Trop d'échecs d'authentification pour l'utilisateur myuser»Sur le serveur cible s'il y a beaucoup d'identités.

Configurations complexes

Il existe de nombreux scénarios que nous pourrions couvrir dans cet article, mais examinons quelques-uns courants et utiles.

ForwardAgent

Que se passe-t-il si vous avez un scénario dans lequel vous avez ouvert une connexion SSH à un serveur cible, qui doit ensuite établir une autre connexion SSH à un deuxième serveur à partir de ce serveur cible d'origine? Vous pourriez penser que vous devrez stocker ces mêmes clés SSH sur ce serveur cible pour effectuer ce prochain saut. Il y a une commande, bien nommée ForwardAgent, qui vous permet de «transférer» vos clés locales au serveur suivant dans le tronçon.

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser
	IdentityFile ~/.ssh/id_ed25519_myuser
	IdentitiesOnly yes
	ForwardAgent yes

ProxyJump

Semblable à ForwardAgent, il est souvent nécessaire d'ouvrir une connexion SSH secondaire directement via une première (ou seconde) cible. Souvent, cela est dû au fait qu'une machine peut être protégée par un pare-feu d'Internet en général, mais qu'elle a une connexion à une «boîte de connexion», qui permet ensuite d'ouvrir une connexion sur le serveur pare-feu. À partir de SSH version 7.3 et supérieure, le ProxyJump commande nous permet d'accomplir facilement cela.

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser
	IdentityFile ~/.ssh/id_ed25519_myuser
	IdentitiesOnly yes
	ForwardAgent yes
	ProxyJump myuser@10.0.0.6:22,myuser2@10.0.0.7:10005

Comme vu ci-dessus, il y a deux serveurs ici. Initialement, la connexion SSH ira à 10.0.0.5 mais ensuite ouvrir immédiatement une connexion à 10.0.0.6, il ouvrira enfin une connexion en utilisant un autre utilisateur et un autre port pour 10.0.0.7.

Tunnel proxy SSH

Et si vous avez besoin de configurer un tunnel SOCKSv5? Cela est assez facile en utilisant le fichier de configuration. Nous introduisons ici trois nouvelles commandes, DynamicForward, ControlMaster, et ControlPath.

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser
	IdentityFile ~/.ssh/id_ed25519_myuser
	IdentitiesOnly yes
	DynamicForward 8080
  ControlMaster auto
  ControlPath ~/.ssh/%r@%h:%p

le DynamicForward La commande est le port que nous cherchons réellement à proxy via notre connexion SSH, tel que le port 8080. ControlMaster est réglé sur auto, ce qui signifie que si une connexion existe, utilisez-la, mais sinon, créez-en une nouvelle. Finalement, le ControlPath définit l'emplacement du fichier socket réel. Dans ce cas, il utilise le format de dénomination de %r@%h:%p, ce qui correspond à myuser@10.0.0.5:22 dans ce cas de connexions.

Conclusion

Il y a beaucoup de puissance dans le fichier de configuration SSH. Des exemples beaucoup plus complexes peuvent être définis, en plus de la facilité de définir de nombreux hôtes différents dans un même emplacement. Ce faisant, non seulement les connexions à l'hôte sont bien documentées, mais elles permettent un accès rapide et facile sur la ligne de commande. Si vous choisissez de placer ce fichier sous contrôle de version, vous ajoutez la possibilité d'avoir un historique de fonctionnement de vos hôtes et de vous épargner un gros mal de tête à l'avenir. Comme vous pouvez le constater, le fichier de configuration SSH facilite la définition des hôtes SSH!

Articles similaires

Persona Strikers 5 nous rappelle les amitiés que nous avons perdues dans la pandémie

Comment faire un «tour» sur votre Apple Watch lorsque vous courez ou faites du vélo

Comment faire un «tour» sur votre Apple Watch lorsque vous courez ou faites du vélo

Près de 300 £ de réduction après le lancement du S21

Près de 300 £ de réduction après le lancement du S21

La mise à jour Xbox Series X / S de Samurai Shodown 120fps est lancée en mars

La mise à jour Xbox Series X / S de Samurai Shodown 120fps est lancée en mars

Articles récents