GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo SSH en una máquina con Windows 10 desde Linux O Windows O en cualquier lugar

He estado callando por todos lados últimamente. I SSH en Linux desde Windows usando el cliente OpenSSH integrado que Windows 10 ha enviado durante años y que usted no conocía.;) No necesitas Putty para SSH con Windows (a menos que te haga feliz, entonces usa Putty, amigo).

Agregar servidor OpenSSH a Windows

Desde un PowerShell administrativo, veré qué cosas de OpenSSH he habilitado. También puedo hacer esto escribiendo "Características de Windows" en el menú Inicio.

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

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

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

Parece que tengo las cosas del cliente OpenSSH pero no el servidor. Puedo usar SSH desde Windows, pero no hacerlo.

Lo agregaré con un comando similar con la versión súper rara pero aparentemente necesaria al final:

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

Inicio de SSHD en Windows como servicio

Una vez que esto haya terminado (y, por supuesto, también puede ejecutarlo con OpenSSH.Client para obtener ambos lados si no lo ha hecho), puede iniciar el servidor SSH (como un servicio de Windows) con esto, luego asegúrese de que se está ejecutando.

Start-Service sshd
Get-Service sshd

Dado que es un servicio de Windows, puede verlo como "OpenSSH SSH Server" en services.msc y configurarlo para que se inicie automáticamente en el inicio si lo desea. Puede volver a hacerlo, desde PowerShell si lo prefiere

Set-Service -Name sshd -StartupType 'Automatic'

Recuerde que utilizamos SSH en el puerto 22, por lo que tendrá una regla de firewall entrante en el 22 en este momento. Depende de usted ser consciente de la seguridad. Tal vez solo permita SSH en su máquina con Windows con claves públicas (sin contraseñas) o tal vez no le importe. Solo ten en cuenta que depende de ti, no de mí.

¡Ahora, desde cualquier máquina Linux (o Windows) puedo usar SSH en mi máquina Windows como un profesional! Tenga en cuenta que estoy usando el sufijo de dominio .local para asegurarme de que no tengo una máquina en mi VPN (permaneciendo en mi subred local)

$ ssh [email protected]
Microsoft Windows [Version 10.0.19041.113]
(c) 2020 Microsoft Corporation. All rights reserved.

scott@IRONHEART C:\Users\scott>pwsh
PowerShell 7.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

Loading personal and system profiles took 1385ms.
⚡ scott@IRONHEART>

Tenga en cuenta que cuando ingresé a Windows mediante SSH obtuve el shell cmd.exe predeterminado. ¡Recuerde también que hay una diferencia entre una consola, una terminal y un shell! Puedo ssh con cualquier terminal en cualquier máquina y terminar en cualquier shell. En este caso, el valor PREDETERMINADO era cmd.exe, que no es óptimo.

Configurar el shell predeterminado para OpenSSH en Windows

En mi servidor (la máquina de Windows en la que estoy usando SSH) configuraré una clave de registro para establecer el shell predeterminado. En este caso, usaré PowerShell Core multiplataforma de código abierto. Puedes usar lo que te haga feliz.

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\PowerShell\7\pwsh.exe" -PropertyType String -Force

Ahora, cuando entro en mi máquina con Windows desde otro lugar (¡incluso desde mi iPad!), obtengo el shell que quiero:

$ ssh [email protected]
PowerShell 7.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

Loading personal and system profiles took 1854ms.
⚡ scott@IRONHEART>

Incluso mejor si quisiera agregar un elemento de menú (perfil) a mi terminal de Windows con una entrada para mi máquina de Windows que me registraría automáticamente desde otro lugar usando claves públicas, ¡también podría hacerlo!

Además, ahora que esto está configurado, puedo usar WinSCP (disponible en Windows Store) así como scp (Secure Copy) para transferir archivos.

Por supuesto, también puede usar WinRM o PowerShell Remoting a través de SSH, pero para mi pequeña red interna, he encontrado que este mecanismo es simple y limpio. ¡Ahora mi silencio es aconfesional!

Patrocinador: ¿Ya intentaste desarrollar en Rider? Este IDE multiplataforma rápido y rico en funciones mejora su código para aplicaciones .NET, ASP.NET, .NET Core, Xamarin y Unity en Windows, Mac y Linux.


Linux
  1. Cómo arrancar desde una unidad USB en VirtualBox en Linux

  2. Cómo usar SSH en Linux desde Android

  3. Ssh:¿acceder al servidor Linux desde una máquina con Windows en modo gráfico a través de Ssh?

  4. Linux:¿cómo iniciar sesión como usuario en Tty desde Ssh?

  5. Cómo SCP desde un servidor Linux a un cliente Windows

Cómo SSH en un directorio particular en Linux

Cómo SSH en su servidor Linux desde Windows

¿Cómo me conecto a Linux VPS a través de SSH desde Linux y Windows OS?

LA MANERA FÁCIL de cómo SSH en Bash y WSL2 en Windows 10 desde una máquina externa

Cómo SSH en WSL2 en Windows 10 desde una máquina externa

Cómo configurar un perfil de pestaña en Windows Terminal para SSH automáticamente en una caja de Linux