¿Puedo conectarme a la máquina Windows desde el shell de Linux?


68

Puedo conectarme a máquinas Linux desde Windows usando PuTTY / SSH. Quiero hacer lo contrario: conectarme a una máquina Windows desde Linux.

es posible?


Consulte la respuesta a continuación: unix.stackexchange.com/a/427739/242983 . OpenSSH ahora es compatible de forma nativa con la última actualización de Windows10. Sin embargo, no está disponible para versiones anteriores. Actualice su Windows10 antes de intentar esto.
alpha_989

@Manishearth Porque a veces solo quieres algo que salga de la caja sin necesidad de lectura adicional.
Zimano

Respuestas:


23

Depende de cómo quieras conectarte. Puede crear recursos compartidos en la máquina Windows y usar smb / cifs para conectarse al recurso compartido.

La sintaxis dependerá de si estás en un dominio o no.

# mount -t cifs //server/share /mnt/server --verbose -o user=UserName,dom=DOMAIN

También tiene la capacidad de montar los $IPCrecursos compartidos y administrativos. Puede buscar en la Comunicación entre procesos lo que puede hacer a través del $IPCrecurso compartido.

Siempre hay:

  • RDP
  • VNC
  • telnet
  • ssh
  • Linux en Windows

Con los últimos 3 necesita instalar software adicional.

VNC se puede ejecutar desde un binario independiente o instalado.

Para RDP, la mayoría de los sistemas Linux ya se han rdesktopinstalado o están disponibles en el administrador de paquetes. El uso rdesktopsolo tiene que habilitar las conexiones RDP a su sistema Windows y luego podrá usar RDP para una consola GUI completa de Windows.


7

Sí, puede conectarse a Windows Machine desde el cliente Linux. Pero para eso debe alojar algún tipo de servidor (es decir, telnet, ssh, ftp o cualquier otro tipo de servidor) en la máquina Windows y debe tener el cliente correspondiente en Linux.


2
Dado que Windows depende más de su GUI que Linux, su mejor opción es probablemente RDP .
cjm

No creo que se quisiera decir algo así como ftp en la pregunta. Y telnet ... ¿en serio?
Usuario desconocido

Sí, probablemente quiso decir ssh ...
jcora

@pradeepchhetri y ¿Windows tiene algunos de estos servidores activos por defecto?
H_7

3
@ H_7: Windows admite el servidor telnet y ftp pero, de manera predeterminada, no se están ejecutando. Debe hacer que se ejecuten: 1. Vaya a Panel de control -> 2. Programas y características -> 3. Active o desactive las características de Windows. Aquí puede ver la lista de servidores o clientes. Puede ejecutar el servidor telnet o ftp desde aquí.
pradeepchhetri

5

Si está activado Windows 10, puede instalarlo OpenSSHutilizando el siguiente script de Powershell.

#change dns server to 8.8.8.8 so that the OpenSSH stuff can be downloaded
netsh interface ip set dns "Ethernet" static 8.8.8.8

#sleep for 60 s so that the DNS server has time to register
Start-Sleep -m 60

#check if OpenSSH is already installed or not
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

# Check if OpenSSH is available
dism /Online /Get-Capabilities | findstr OpenSSH

# install the server and/or client features:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

Install-Module -Force OpenSSHUtils

Repair-SshdHostKeyPermission -FilePath C:\Windows\System32\OpenSSH\ssh_host_ed25519_key

# start the ssh server daemon
Start-Service sshd

# This should return a Status of Running
Get-Service sshd

# add firewall rule to allow inbound and outbound traffic through port 22
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Service sshd -Enabled True -Direction Inbound -Protocol TCP -Action Allow -Profile Domain

Tenga en cuenta que este script cambiará el dns a Google dns. Como OpenSSHno se distribuye con la Windows10distribución predeterminada , en realidad descargará algunos archivos de Internet. Por lo tanto, necesita una conexión a Internet que funcione y un servidor DNS correcto, razón por la cual especifiqué el servidor DNS estático, en caso de que esté detrás de un firewall o use una IP estática sin servidor DNS.

Una vez que haya hecho esto, debe averiguar la dirección IP del Windows host usign

ipconfig

Luego, desde el Linux/Unixsistema operativo hacer

ssh username@Windows_ip

donde username es el nombre de la cuenta y Windows_ipes la dirección IP de la computadora con Windows en la que está intentando iniciar sesión


En mi instalación de Windows, no se ejecuta nada excepto la primera línea. La respuesta es "Sart-Sleep no se reconoce como un comando interno o externo, programa operativo o archivo por lotes". Así que esto no es tan fácil como quisiera :-)
levitopher

1
Un usuario anónimo acaba de notar en una edición (fallida) que la línea que comienza Repair-SshdHostKeyPermissionno es necesaria. No sé si esto es cierto o no, pero en caso de que lo sea, no quiero que la nota se pierda para siempre.
Roaima

4

Tal vez le gustaría probar RDP o software como teamviewer. También puede instalar cygwin en su máquina con Windows y configurarlo para acceso ssh, de modo que obtenga un shell como lo conoce de linux cuando se conecte por ssh.


2

Debe instalar el servidor openssh en la máquina con Windows como el servidor openssh en Android. Puede usar masilla en la máquina iinux para enviar a la máquina Windows. Puede usar netstat para verificarlo después de instalar el servidor openssh en la máquina Windows.


1
¿por qué necesitas masilla en máquinas linux para ssh a windows? ssh normalmente ya está instalado en máquinas Linux ... ¿no?
alpha_989

2

Si usa git en Windows, felicidades, ya puede ingresar a su máquina Windows.

Simplemente inicie el servidor ssh:

net start "C:\Program Files\Git\usr\bin\sshd.exe"

Luego configure su firewall con este comando powershell:

New-NetFirewallRule -Name sshd -DisplayName 'SSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.