Puis-je me connecter à une machine Windows à partir d'un shell Linux?


68

Je peux me connecter aux machines Linux à partir de Windows avec PuTTY / SSH. Je veux faire l'inverse - me connecter à une machine Windows à partir de Linux.

Est-ce possible?


Voir la réponse ci-dessous: unix.stackexchange.com/a/427739/242983 . OpenSSH est maintenant pris en charge de manière native par la dernière mise à jour de Windows10. Cependant, ce n'est pas disponible pour les anciennes versions. Veuillez mettre à jour votre Windows 10 avant d'essayer cela.
alpha_989

@Manishearth Parce que parfois, vous voulez juste quelque chose qui fonctionne hors de la boîte avec aucune lecture supplémentaire requise.
Zimano

Réponses:


23

Cela dépend de la façon dont vous voulez vous connecter. Vous pouvez créer des partages sur la machine Windows et utiliser smb / cifs pour vous connecter au partage.

La syntaxe dépend de si vous êtes dans un domaine ou non.

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

Vous avez également la possibilité de monter les $IPCpartages et administratifs. Vous pouvez examiner la communication inter-processus pour savoir ce que vous pouvez faire via le $IPCpartage.

Il y a toujours:

  • RDP
  • VNC
  • telnet
  • ssh
  • Linux sous Windows

Avec les 3 derniers, vous devez installer un logiciel supplémentaire.

VNC peut être exécuté à partir d'un binaire autonome ou installé.

Pour RDP, la plupart des systèmes Linux sont déjà rdesktopinstallés ou disponibles dans le gestionnaire de packages. L' utilisation rdesktopvous avez seulement pour activer les connexions RDP à votre système Windows et vous serez en mesure d'utiliser RDP pour une console complète interface graphique de Windows.


7

Oui, vous pouvez vous connecter à Windows Machine à partir du client Linux. Mais pour cela, vous devez héberger un type de serveur (telnet, ssh, ftp ou tout autre type de serveur) sur une machine Windows et vous devez avoir le client correspondant sur Linux.


2
Étant donné que Windows dépend davantage de son interface graphique que de Linux, votre meilleur choix est probablement RDP .
cjm

Je ne pense pas que quelque chose comme ftp était visé dans la question. Et telnet - ... vraiment?
utilisateur inconnu

Ouais, il voulait probablement dire ssh ...
jcora

@pradeepchhetri et Windows a-t-il certains de ces serveurs actifs par défaut?
H_7

3
@ H_7: Windows prend en charge les serveurs telnet et ftp mais, par défaut, ils ne fonctionnent pas. Vous devez les faire fonctionner en: 1. Allez dans Panneau de configuration -> 2. Programmes et fonctionnalités -> 3. Activez ou désactivez les fonctionnalités Windows. Ici vous pouvez voir la liste des serveurs ou des clients. Vous pouvez exécuter un serveur telnet ou ftp à partir d'ici.
pradeepchhetri

5

Si vous êtes sur Windows 10, vous pouvez installer OpenSSHà l'aide du script Powershell suivant.

#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

Veuillez noter que ce script modifiera le DNS en DNS Google. Parce que OpenSSHn’est pas distribué avec la Windows10distribution par défaut , certains fichiers seront téléchargés sur Internet. Vous avez donc besoin d’une connexion Internet fonctionnelle et d’un serveur DNS correct. C’est pourquoi j’ai spécifié le serveur DNS statique, juste au cas où vous êtes derrière un pare-feu ou que vous utilisez une adresse IP statique sans serveur DNS.

Une fois que vous avez fait cela, vous devriez trouver l'adresse IP de l' Windows hôte usign

ipconfig

Puis de l' Linux/UnixOS faire

ssh username@Windows_ip

où nom d'utilisateur est le nom du compte et Windows_ipl'adresse IP de l'ordinateur Windows auquel vous essayez de vous connecter


Sur mon installation de Windows, rien sauf la première ligne est exécuté. La réponse est "Sart-Sleep n'est pas reconnu en tant que commande interne ou externe, programme utilisable ou fichier de commandes". Donc ce n’est pas tout à fait aussi simple que vous le souhaitez :-)
levitopher

1
Un utilisateur anonyme vient de noter dans une modification (échec) que la ligne commençant par Repair-SshdHostKeyPermissionn'est pas nécessaire. Je ne sais pas si cela est vrai ou non, mais dans le cas contraire, je ne veux pas que la note soit perdue à jamais.
Roaima

4

Peut-être voudriez-vous essayer RDP ou un logiciel comme teamviewer? Vous pouvez également installer cygwin sur votre machine Windows et le configurer pour un accès ssh, de sorte à obtenir un shell tel que vous le connaissez sous Linux lorsque vous vous connectez via ssh.


2

Vous devez installer le serveur openssh sur une machine Windows, comme le serveur openssh sur android.Vous pouvez utiliser du mastic sur une machine iinux pour ssh sur une machine Windows. Vous pouvez utiliser netstat pour le vérifier après avoir installé le serveur openssh sur une machine Windows.


2
pourquoi avez-vous besoin de mastic sur les machines linux pour ssh pour windows? SSH il est généralement déjà installé sur les machines Linux .. n'est-ce pas?
alpha_989

2

Si vous utilisez git sur Windows, félicitations, vous pouvez déjà ssh dans votre machine Windows.

Il suffit de démarrer le serveur ssh:

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

Configurez ensuite votre pare-feu avec cette commande powershell:

New-NetFirewallRule -Name sshd -DisplayName 'SSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.