GNU/Linux >> Tutoriels Linux >  >> Linux

LA FAÇON FACILE comment SSH dans Bash et WSL2 sur Windows 10 à partir d'une machine externe

Ceci est un article de blog intéressant sur la façon de SSH dans WSL2 sur Windows 10 à partir d'une machine externe. Lis le. Sachez comment cela fonctionne. Apprend le. ET NE LE FAITES PAS CAR C'EST TROP COMPLEXE .

NE FAITES PAS CELA. C'est bon. Ça marche. Mais c'est baroque. Vous transférez des ports dans un petit sous-réseau local doté d'une VM, vous avez affaire à des changements d'adresses IP WSL2, vous devrez maintenir votre VM en marche et vous essayez généralement de patiner sur la colline.

Voici la chose. Dans ce message - ce que vous ne devriez pas faire - vous désactivez le pare-feu Windows pour votre port, transférez vers un sous-réseau interne, puis laissez WSL prendre le relais.

MAIS ! Windows 10 sait déjà accepter les connexions SSH. En fait, il a livré OpenSSH en tant que "fonctionnalité à la demande" pendant des années. Le problème est que vous (commutateurs Mac et Linux) n'aimez pas le shell par défaut - PowerShell.

Alors pourquoi ne pas changer le shell Windows par défaut pour SSH en Bash de WSL2 ?

Boom. Maintenant, vous n'avez plus de transfert de port, les pare-feu ne s'ouvrent que pour un processus et votre instance WSL2 démarre à l'entrée. Littéralement le meilleur des mondes.

Comment configurer SSH dans WSL2 sur votre machine Windows 10

Tout d'abord, ouvrez une invite admin PowerShell (menu Démarrer, tapez PowerShell, maintenez ctrl+shift et appuyez sur entrée) tapez ceci :

> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Name : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

Vous voyez comment j'ai le client et non le serveur OpenSSH ? Ajoutez-le :

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Maintenant, démarrez le service SSHD ou configurez-le pour qu'il démarre automatiquement :

Start-Service sshd
Get-Service sshd

ou automatique :

Set-Service -Name sshd -StartupType 'Automatic'

Configuration du shell par défaut pour OpenSSH dans Windows 10

Sur mon serveur (la machine Windows sur laquelle je me connecte en SSH), je vais définir une clé de registre pour définir le shell par défaut. Dans ce cas, j'utiliserai PowerShell Core multiplateforme open source. Vous pouvez utiliser tout ce qui vous rend heureux et le bash de WSL2 me rend heureux.

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\WINDOWS\System32\bash.exe" -PropertyType String -Force

Notez que bash.exe dans ce contexte démarre "wsl -d YOURDEFAULTDISTRO " donc vous voudrez savoir quelle est votre valeur par défaut, et si vous ne l'aimez pas, changez-la avec wsl --set-default DISTRO .

ATTENTION :Vous avez besoin du CHEMIN COMPLET ET CORRECT dans cette commande ci-dessus. Cela fonctionne pour n'importe quel shell. Depuis que j'utilise bash.exe, WSL2 démarre gratuitement mais SSH avec cette solution utilise les clés SSH de Windows et l'authentification Windows. Notez que lorsque vous entrez votre mot de passe pour l'authentification !

Encore mieux si je voulais ajouter un élément de menu (profil) à un terminal Windows local avec une entrée pour ssh dans mon WSL sur ma machine Windows distante qui me connecterait automatiquement depuis ailleurs en utilisant des clés publiques, je pourrais le faire aussi !

Pour conclure et résumer :

  • Ce billet de blog - celui que vous lisez utilise OpenSSH de Windows et s'authentifie auprès de Windows puis exécute WSL2. WSL2 démarre, utilise bash et Windows gère le trafic TCP.
  • Cet autre article de blog - ici - n'a que des ports de transfert Windows, utilise Linux OpenSSH de WSL2 et s'authentifie auprès de Linux. Windows n'est impliqué qu'en périphérie. L'adresse IP WSL2 change au redémarrage et vous devrez maintenir vos règles de proxy de port et vos règles de pare-feu avec le script écouté à la fin de ce message.

Comprenez ce que vous voulez et utilisez celui qui vous convient.

Prendre plaisir!

Parrain : Bug en prod ? Allez au fond des choses, rapidement, avec la recherche en direct du journal de production dans Seq 2020.1.


Linux
  1. Comment se connecter à une base de données Postgresql à partir de la ligne de commande

  2. Un moyen facile de vérifier le test de vitesse SSH

  3. Bash + Comment quitter le script secondaire et le script principal à chaque fois ?

  4. Le moyen le plus rapide de coller un bloc de texte dans l'éditeur vi à partir d'une source externe

  5. Comment SCP du serveur Linux au client Windows

Comment créer des volumes Docker sous Windows en toute simplicité

Comment se connecter en SSH à votre serveur Linux à partir de Windows

Comment me connecter à Linux VPS via SSH depuis Linux et Windows OS ?

Comment installer Ubuntu 18.04 Bionic Beaver en toute simplicité !

Comment se connecter en SSH à WSL2 sur Windows 10 à partir d'une machine externe

Comment se connecter en SSH à une machine Windows 10 depuis Linux OU Windows OU n'importe où