GNU/Linux >> Tutoriels Linux >  >> Linux

Un gars Windows dans un monde Linux :Configuration de la commande SSH sous Linux

Linux et Windows étaient des ennemis mortels, mais de nos jours, ils ont tendance à mieux s'entendre. En fait, vous pouvez désormais même utiliser SSH de manière native dans Windows :à la fois en tant que client et serveur. Que faites-vous lorsque vous êtes administrateur Windows mais que vous devez également gérer des machines Linux ? Vous vous habituez à la commande SSH (Secure Shell) sous Linux !

Ceci est la quatrième partie de la série d'articles de blog A Windows Guy in a Linux World. Si vous souhaitez en savoir plus sur les concepts Linux populaires, assurez-vous de consulter la partie I, la partie II et la partie III.

Dans cet article, vous apprendrez comment activer SSH sous Linux et comment configurer votre client Windows SSH pour vous connecter à des serveurs Linux distants.

Remarque :tous les exemples utiliseront OpenSUSE Linux.

S'éloigner de l'environnement de bureau

De retour dans le premier article de cette série, le didacticiel recommandait d'utiliser l'environnement de bureau KDE. Au cours de la configuration d'OpenSUSE, vous avez probablement vu une autre option attrayante ; l'édition serveur d'OpenSUSE.

Si vous avez installé l'édition serveur de la plupart des distributions Linux (y compris OpenSUSE), vous avez peut-être remarqué l'absence totale de bureau. L'édition Server des distributions les plus populaires (comme OpenSUSE, ainsi qu'Ubuntu Server et CentOS) est comme Windows Server Core :pas de bureau à proprement parler.

Pour comprendre pourquoi le bureau est généralement évité dans la culture Linux, vous devez comprendre la CLI et SSH.

SSH :l'étalon-or de la gestion à distance

SSH, comme de nombreux autres protocoles de gestion à distance, est un système client-serveur. Un client se connecte à distance sur le réseau à un serveur et vous permet d'exécuter des commandes (ou même de transférer des fichiers). SSH est la norme de facto lorsqu'il s'agit de gérer Linux à distance.

Étant donné que SSH existe depuis longtemps et qu'il est profondément intégré à l'écosystème Linux, les utilitaires d'administration en ligne de commande dominent l'environnement du serveur Linux. La plupart des distributions de serveur Linux n'ont pas d'interface graphique.

Utilisation des commandes SSH sous Linux

Assez parlé. Voyons ce que SSH peut faire en l'activant d'abord dans OpenSUSE Linux. Pour ce faire, utilisez le gestionnaire de packages YaST. Pour activer SSH avec YaST dans OpenSUSE :

  1. Cliquez sur le menu Démarrer, tapez terminal et choisissez Konsole en supposant que vous avez installé le KDE Desktop Manager lors de l'installation d'OpenSUSE.
  2. Dans le terminal, ouvrez YaST en exécutant sudo yast .
  3. Une fois dans YaST, flèche vers le bas jusqu'à système , puis flèche vers gestionnaire de services et appuyez sur Entrée pour continuer.
  4. Flèche vers le bas jusqu'à sshd, et appuyez sur alt+s pour démarrer le service SSH.
  5. Appuyez sur alt+r pour changer le mode de démarrage de manuel à au démarrage. Cela garantira que le service du serveur SSH est démarré même après un redémarrage.
  6. Appuyez sur alt+o à ok les modifications et appliquez-les.

Vous pouvez voir ces étapes en action ci-dessous.

Autoriser SSH à travers le pare-feu

Presque toutes les distributions Linux sont livrées avec une sorte de pare-feu pour la protéger comme le fait Windows. Vous pouvez en savoir plus sur le pare-feu d'OpenSUSE ici. Pour vous assurer que vous pouvez accéder au service SSH à distance depuis Windows, vous devez l'autoriser à travers le pare-feu. Pour ce faire :

  1. Toujours dans le terminal, redémarrez YaST avec sudo yast .
  2. Flèche vers le bas jusqu'à Sécurité et utilisateurs puis flèche vers Pare-feu et appuyez sur Entrée pour continuer.
  3. Naviguer vers Zones –> Public et flèche vers Services—Ports volet de droite.
  4. Flèche vers le bas pour trouver ssh dans les services.
  5. Sélectionnez ssh avec la barre d'espace et appuyez sur alt+d pour ajouter la sélection.
  6. Appuyez sur alt+a pour accepter les modifications.

Vous pouvez voir toutes ces étapes ci-dessus représentées visuellement ci-dessous.

Tout comme Windows, Linux a différents niveaux de confiance pour appliquer les règles de pare-feu. Ces niveaux sont appelés zones. Windows a des zones publiques, professionnelles et privées par défaut. Linux en a beaucoup plus, mais utilise par défaut la zone publique.

Se connecter à Linux depuis Windows

Heureusement, ces jours-ci, Windows 10 a un client SSH intégré. Pour vous connecter à un hôte Linux, ouvrez une invite de commande (cmd) ou une console PowerShell et spécifiez le nom d'utilisateur avec lequel vous connecter et l'adresse IP ou le nom d'hôte.

> ssh @

Si tout se passe bien, le client SSH devrait vous demander d'accepter une empreinte digitale. Une empreinte digitale est un identifiant permettant de s'assurer que quelqu'un n'a pas piraté l'adresse IP cible.

Si vous utilisez Windows 7, vous pouvez toujours vous connecter en SSH à votre hôte Linux. Vous aurez juste besoin de télécharger le client Microsoft SSH à partir d'ici. Ce client SSH est le même que celui utilisé par Windows 10.

Une fois que vous avez tapé yes et mettez votre mot de passe vous êtes connecté à votre serveur ! Vous pouvez maintenant utiliser la ligne de commande comme si nous ouvrions un terminal sur l'ordinateur lui-même.

N'exposez pas SSH (port 22 par défaut) à Internet via votre routeur. Les bots parcourent Internet constamment à la recherche de ports SSH ouverts. Dès qu'un bot trouve un port ouvert, il commence à spammer des mots de passe en essayant de forcer brutalement son entrée.

Activation de la prise en charge de la souris dans SSH avec Windows

L'un des gros inconvénients de l'utilisation du client SSH natif de Windows 10 (du moins au moment d'écrire ces lignes) est le manque de prise en charge de la souris. Cela signifie que vous ne pouvez pas utiliser de souris dans le commandant de minuit, comme vous l'avez appris dans un article de blog précédent.

Heureusement, à partir de la version 8 du client Windows OpenSSH, vous pouvez bénéficier de la prise en charge de la souris ! Installons ce client.

  1. Téléchargez la dernière version d'OpenSSH-Win64 à partir d'ici et extrayez le fichier zip résultant. Le didacticiel supposera que vous l'extrayez vers ~\Downloads\OpenSSH-Win64 .
  2. Ouvrez une console PowerShell et accédez à ~\Downloads\OpenSSH-Win64 avec cd ~\Downloads\OpenSSH-Win64 .
  3. Vérifiez la version du client SSH en exécutant .\\ssh -V . Au moment de la rédaction de ce guide, la version devrait être 8.1.0.0-p1.
  4. SSH dans votre serveur Linux en utilisant .\ssh @ .
  5. Une fois connecté, testez la prise en charge de la souris en exécutant mc pour exécuter le commandant de minuit pour vous assurer que vous pouvez utiliser une souris.

Vous pouvez voir toutes ces étapes ci-dessus représentées visuellement ci-dessous.

Remplacer le client SSH par défaut

Si vous souhaitez utiliser la nouvelle version de manière plus permanente, vous pouvez; mais vous devez remplacer le client SSH Windows 10 par défaut. Cela garantit que chaque fois que vous exécutez ssh sur la ligne de commande, la version la plus récente (avec prise en charge de la souris) est utilisée.

En supposant que le client soit extrait vers ~\Downloads\OpenSSH-Win64 dossier

  1. Déplacez le dossier OpenSSH-Win64 extrait vers un dossier permanent de votre choix. Ce tutoriel utilisera C:\users\public\OpenSSH-Win64 .
  2. Allez à Démarrer puis Exécuter et tapez sysdm.cpl ou, ouvrez Système depuis le panneau de configuration.
  3. Sous la rubrique Avancé cliquez sur l'onglet Variables d'environnement .
  4. Sous Variables système , cliquez sur Chemin .
  5. Cliquez sur Nouveau pour ajouter un nouveau chemin et fournir le chemin du dossier au client SSH (C:\users\public\OpenSSH-Win64 dans ce cas).
  6. Cliquez sur Monter jusqu'à ce qu'il soit au-dessus de %SystemRoot%\system32 dossier. Cela garantira que chaque fois que vous tapez ssh sur la ligne de commande, Windows regardera ici en premier.
  7. Ouvrez une console PowerShell et exécutez ssh -V . Vous devriez voir la version à 8.1.0.0-p .

Ces étapes sont résumées ci-dessous.

Donner la priorité à un dossier sur %SystemRoot%\system32 peut être un risque pour la sécurité. Si quelqu'un a accès à votre ordinateur, il peut décider d'insérer un virus dans le dossier OpenSSH-Win64 et de le nommer comme un utilitaire Windows comme cd.exe .

Vous devez restreindre le dossier OpenSSH-Win64 pour qu'il soit en lecture seule pour quiconque, à l'exception des administrateurs.

  1. Cliquez avec le bouton droit sur le dossier OpenSSH-Win64 et cliquez sur Propriétés .
  2. Sous la sécurité cliquez sur l'onglet Avancé bouton.
  3. Cliquez sur Désactiver l'héritage pour autoriser les autorisations de dossier personnalisées et empêcher les dossiers parents de remplacer les autorisations dans le dossier OpenSSH-Win64.
  4. Choisissez Ajouter , recherchez les administrateurs groupe et donnez-leur tous les droits.
  5. Cliquez sur Ajouter , recherchez Tout le monde groupe et donnez-leur des autorisations en lecture seule.
  6. Sélectionnez l'autorisation Remplacer tous les objets enfants case à cocher pour propager ces paramètres à tous les fichiers du dossier OpenSSH-Win64 ; cliquez sur Appliquer .
  7. Testez maintenant ces autorisations en créant un nouveau fichier dans le dossier OpenSSH-Win64. Windows devrait exiger une invite de l'administrateur.

Vous pouvez voir toutes ces étapes ci-dessus représentées visuellement ci-dessous.

Gestion des sessions déconnectées avec Tmux

Ah, quelle douleur ! Vous êtes à mi-chemin de l'exécution d'une commande à exécution longue sur SSH et votre Internet tombe en panne. Maintenant, vous n'avez aucune idée de l'état dans lequel se trouve le serveur Linux ! C'est fait avec cette commande ? Comment le récupérer ?

Les sessions déconnectées sont un problème légitime avec SSH et qui, heureusement, a une solution simple. Vous avez besoin d'un multiplexeur de terminaux (tmux).

Tmux représente à la fois l'abréviation de terminal multiplexeur et le nom du programme lui-même

Tmux est un gestionnaire de session pour SSH. Il "s'accroche" à une session si vous êtes déconnecté et la maintient en arrière-plan. Vous pouvez vous reconnecter à cette session plus tard ou même créer plusieurs sessions et sauter entre elles.

Pour gérer les sessions déconnectées avec tmux :

  1. Dans le terminal Linux, téléchargez et installez l'utilitaire tmux en exécutant sudo zypper install -y tmux comme indiqué ci-dessous :

Vous pouvez également utiliser YaST pour télécharger l'utilitaire tmux.

La plupart des distributions Linux ont un gestionnaire de paquets en ligne de commande différent. OpenSUSE utilise zypper. Arch utilise pacman. Ubuntu utilise apt. Red Hat utilise dnf et yum. Heureusement, la syntaxe de ces gestionnaires de packages est assez similaire dans tous les domaines.

2. Sur votre ordinateur Windows, ouvrez une console PowerShell et SSH sur votre serveur Linux. Le tutoriel utilisera un nom d'utilisateur de homelab et une IP de serveur Linux de 192.168.134.169.

ssh @

3. Ouvrez tmux en exécutant tmux une fois connecté. Vous devriez obtenir une barre verte en bas

4. Exécutez une commande qui génère du texte. Peu importe ce que c'est. Ce tutoriel utilise neofetch . Vous pouvez exécuter ls aussi.

5. Déconnectez la session en fermant PowerShell. Cette action simule un abandon.

6. Reconnectez-vous à nouveau à votre serveur Linux en utilisant SSH.

7. Rattachez maintenant à l'ancienne session en exécutant tmux a Vous devriez toujours voir la sortie de ce précédent ls commande. Hourra, aucune perte de données due à la déconnexion !

Vous pouvez voir toutes ces étapes ci-dessus représentées visuellement ci-dessous.

Si vous essayez d'exécuter l'utilitaire Midnight Commander dans tmux , vous remarquerez peut-être que la souris n'est pas prise en charge. Vous pouvez résoudre ce problème en exécutant mc -x à la place.

Activation de tmux à la connexion

Par défaut, tmux ne sera pas disponible dans toutes les sessions SSH. Vous pouvez changer cela en forçant tmux à se connecter à votre session SSH chaque fois que vous vous connectez.

En supposant que vous êtes connecté en SSH à votre serveur Linux :

  1. Ouvrez l'utilitaire Midnight Commander à l'aide de mc.

2. Mettez en surbrillance le .bashrc fichier et appuyez sur modifier .

Le .bashrc Le fichier est un script shell (batch) qui s'exécute chaque fois que vous vous connectez via la ligne de commande

3. Ajoutez le code de script shell ci-dessous au bas du fichier texte.

if [ -z "$TMUX" ]; then tmux attach -t default || tmux new -s default fi

4. Cliquez sur quitter et enregistrez lorsque vous y êtes invité.

5. Testez l'attachement automatique tmux en vous déconnectant de votre session SSH et en vous rejoignant. Vous devriez obtenir automatiquement une barre verte en bas, indiquant que vous êtes connecté à un tmux séance !

Cela ne fait qu'effleurer la surface de ce que tmux peut faire, c'est un programme multitâche assez puissant. Si vous demandez à n'importe quel administrateur Linux quelle est sa commande la plus utilisée, c'est probablement tmux .

Conclusion

Cela conclut le dernier article du A Windows Guy in a Linux World série d'articles de blog. Restez à l'écoute du blog ATA pour la prochaine installation à venir !


Linux
  1. Comment trouver des connexions SSH actives sous Linux

  2. Commande Linux mv

  3. Linux du command

  4. Commande IP Linux

  5. Masquer les fichiers cachés Linux dans Windows

Comment transmettre un mot de passe à la commande SSH sous Linux

Utilisation de la commande SSH dans les systèmes Linux/Unix

Un gars Windows dans un monde Linux :VS Code et SSH distant

Un gars Windows dans un monde Linux :utilisateurs et autorisations de fichiers

Un gars Windows dans un monde Linux :YaST et le bureau

Configuration d'un environnement de développement brillant sous Linux sur Windows 10