Posso connettermi al computer Windows dalla shell Linux?


68

Posso connettermi a macchine Linux da Windows usando PuTTY / SSH. Voglio fare il contrario: connettermi a una macchina Windows da Linux.

È possibile?


Vedi la risposta di seguito: unix.stackexchange.com/a/427739/242983 . OpenSSH è ora supportato in modo nativo dall'ultimo aggiornamento di Windows10. Tuttavia, non è disponibile per le versioni precedenti. Aggiorna Windows 10 prima di provare questo.
alpha_989

@Manishearth Perché a volte vuoi solo qualcosa che funzioni fuori dagli schemi senza che sia necessaria alcuna lettura aggiuntiva.
Zimano,

Risposte:


23

Dipende da come si desidera connettersi. È possibile creare condivisioni sul computer Windows e utilizzare smb / cifs per connettersi alla condivisione.

La sintassi dipende dalla presenza o meno di un dominio.

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

Hai anche la possibilità di montare le $IPCcondivisioni amministrative. Puoi esaminare la comunicazione tra processi per ciò che puoi fare tramite la $IPCcondivisione.

C'è sempre:

  • RDP
  • VNC
  • telnet
  • SSH
  • Linux su Windows

Con gli ultimi 3 è necessario installare software aggiuntivo.

VNC può essere eseguito da un file binario autonomo o installato.

Per RDP la maggior parte dei sistemi Linux è già rdesktopinstallata o è disponibile nel gestore pacchetti. Usando rdesktopdevi solo abilitare le connessioni RDP al tuo sistema Windows e poi sarai in grado di usare RDP per una console Windows GUI completa.


7

Sì, è possibile connettersi a Windows Machine dal client Linux. Ma per questo devi ospitare un qualche tipo di server (cioè telnet, ssh, ftp o qualsiasi altro tipo di server) su una macchina Windows e dovresti avere il client corrispondente su Linux.


2
Poiché Windows dipende più dalla sua GUI che da Linux, la tua scommessa migliore è probabilmente RDP .
cjm

Non penso che qualcosa come ftp fosse inteso nella domanda. E telnet - ... davvero?
utente sconosciuto

Sì, probabilmente intendeva ssh ...
jcora,

@pradeepchhetri e Windows ha alcuni di questi server attivi per impostazione predefinita?
H_7,

3
@ H_7: Windows supporta i server telnet e ftp ma per impostazione predefinita non sono in esecuzione. Devi farli funzionare da: 1. Vai su Pannello di controllo -> 2. Programmi e funzionalità -> 3. Attiva o disattiva le funzionalità di Windows. Qui puoi vedere l'elenco dei server o client. Da qui è possibile eseguire server telnet o ftp.
pradeepchhetri,

5

Se sei attivo Windows 10, puoi installarlo OpenSSHusando il seguente script 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

Si noti che questo script cambierà il DNS in Google DNS. Poiché OpenSSHnon è distribuito con la Windows10distribuzione predefinita , scaricherà effettivamente alcuni file da Internet. Quindi hai bisogno di una connessione Internet funzionante e un server DNS corretto, motivo per cui ho specificato il server DNS statico, nel caso in cui ti trovi dietro un firewall o usi un IP statico senza server DNS.

Una volta fatto questo, dovresti capire l'indirizzo IP Windows dell'usign host

ipconfig

Quindi dal Linux/Unixsistema operativo fare

ssh username@Windows_ip

dove username è il nome dell'account ed Windows_ipè l'indirizzo IP del computer Windows a cui stai tentando di accedere


Nella mia installazione di Windows, non viene eseguito nulla tranne la prima riga. La risposta è "Sart-Sleep non viene riconosciuto come comando interno o esterno, programma eseguibile o file batch". Quindi questo non è abbastanza taglierino come vorresti :-)
levitopher

1
Un utente anonimo ha appena notato in una modifica (non riuscita) che la riga che inizia con Repair-SshdHostKeyPermissionnon è necessaria. Non so se questo sia vero o no, ma nel caso lo sia non voglio che la nota venga persa per sempre.
roaima,

4

Forse ti piacerebbe provare RDP o software come teamviewer. Inoltre potresti installare cygwin sul tuo computer Windows e configurarlo per l'accesso a ssh, così otterrai una shell come la conosci da Linux quando ti connetti tramite ssh.


2

Dovresti installare openssh server su Windows Machine come openssh server su Android. Puoi usare putty su macchina Linux per ssh su windows Machine. Puoi usare netstat per controllarlo dopo aver installato openssh server su windows machine.


1
perché hai bisogno di stucco su macchine linux per ssh su windows? ssh in genere è già installato su macchine linux .. vero?
alpha_989,

2

Se usi git su Windows, congratulazioni, puoi già ssh nel tuo computer Windows.

Basta avviare il server SSH:

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

Quindi configura il tuo firewall con questo comando powershell:

New-NetFirewallRule -Name sshd -DisplayName 'SSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.