Kann ich von der Linux-Shell aus eine Verbindung zum Windows-Computer herstellen?
68
Ich kann unter Windows mit PuTTY / SSH eine Verbindung zu Linux-Computern herstellen. Ich möchte umgekehrt vorgehen - eine Verbindung zu einem Windows-Computer von Linux aus herstellen.
Siehe Antwort unten: unix.stackexchange.com/a/427739/242983 . OpenSSH wird jetzt nativ vom neuesten Update von Windows 10 unterstützt. Es ist jedoch nicht für ältere Versionen verfügbar. Bitte aktualisieren Sie Ihr Windows10, bevor Sie dies versuchen.
Alpha_989
@Manishearth Denn manchmal möchten Sie einfach nur etwas, das sofort funktioniert, ohne dass zusätzliche Informationen erforderlich sind.
Zimano,
Antworten:
23
Es hängt davon ab, wie Sie eine Verbindung herstellen möchten. Sie können Freigaben auf dem Windows-Computer erstellen und smb / cifs verwenden, um eine Verbindung zur Freigabe herzustellen.
Die Syntax hängt davon ab, ob Sie sich in einer Domäne befinden oder nicht.
# mount -t cifs //server/share /mnt/server --verbose -o user=UserName,dom=DOMAIN
Sie haben auch die Möglichkeit, die $IPCund administrative Freigaben einzuhängen . Sie können in Inter-Process Communication nachsehen, was Sie über die $IPCFreigabe tun können .
Es gibt immer:
RDP
VNC
Telnet
ssh
Linux unter Windows
Mit den letzten 3 müssen Sie zusätzliche Software installieren.
Für RDP haben die meisten Linux-Systeme entweder bereits rdesktopinstalliert oder es ist im Paket-Manager verfügbar. Unter Verwendung von müssen rdesktopSie nur RDP-Verbindungen zu Ihrem Windows-System aktivieren, und dann können Sie RDP für eine vollständige GUI-Windows-Konsole verwenden.
Ja, Sie können vom Linux-Client aus eine Verbindung zu Windows Machine herstellen. Dazu müssen Sie jedoch einen Server (z. B. Telnet, SSH, FTP oder einen anderen Server) auf einem Windows-Computer hosten und auf dem Linux-Computer den entsprechenden Client haben.
Da Windows mehr von der Benutzeroberfläche als von Linux abhängig ist, ist RDP wahrscheinlich die beste Wahl .
cjm
Ich glaube nicht, dass so etwas wie FTP in der Frage gemeint war. Und Telnet - ... wirklich?
Benutzer unbekannt
Ja, er meinte wahrscheinlich ssh ...
jcora
@pradeepchhetri und hat Windows einige dieser Server standardmäßig aktiviert?
H_7
3
@ H_7: Windows unterstützt Telnet- und FTP-Server, diese werden jedoch standardmäßig nicht ausgeführt. Sie müssen sie folgendermaßen ausführen: 1. Gehen Sie zu Systemsteuerung -> 2. Programme und Funktionen -> 3. Schalten Sie die Windows-Funktionen ein oder aus. Hier sehen Sie die Liste der Server oder Clients. Sie können von hier aus Telnet- oder FTP-Server ausführen.
Pradeepchhetri
5
Wenn Sie eingeschaltet sind Windows 10, können Sie OpenSSHmithilfe des folgenden Powershell-Skripts installieren .
#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
Bitte beachten Sie, dass dieses Skript die DNS in Google DNS ändert. Da
OpenSSHes nicht mit der Standarddistribution Windows10verteilt wird, werden tatsächlich einige Dateien aus dem Internet heruntergeladen. Sie benötigen also eine funktionierende Internetverbindung und einen korrekten DNS-Server. Aus diesem Grund habe ich den statischen DNS-Server angegeben, nur für den Fall, dass Sie sich hinter einer Firewall befinden oder eine statische IP ohne DNS-Server verwenden.
Sobald Sie dies getan haben, sollten Sie die IP-Adresse des Windows
Host-Benutzers herausfinden
ipconfig
Dann aus dem Linux/UnixOS machen
ssh username@Windows_ip
Dabei ist Benutzername der Name des Kontos und Windows_ipdie IP-Adresse des Windows-Computers, bei dem Sie sich anmelden möchten
Bei meiner Windows-Installation wird nur die erste Zeile ausgeführt. Die Antwort lautet "Sart-Sleep wird nicht als interner oder externer Befehl, ausführbares Programm oder Batch-Datei erkannt". Das ist also nicht ganz so, wie Sie es
möchten
1
Ein anonymer Benutzer hat gerade in einer (fehlgeschlagenen) Bearbeitung festgestellt, dass die Zeile, die mit beginnt, Repair-SshdHostKeyPermissionnicht benötigt wird. Ich weiß nicht, ob dies wahr ist oder nicht, aber falls es so ist, möchte ich nicht, dass die Notiz für immer verloren geht.
Roaima
4
Vielleicht möchten Sie RDP oder Software wie teamviewer ausprobieren. Außerdem können Sie cygwin auf Ihrem Windows-Computer installieren und für den SSH-Zugriff konfigurieren, sodass Sie eine Shell erhalten, wie Sie sie von Linux kennen, wenn Sie eine Verbindung über SSH herstellen.
Sie sollten openssh server auf Windows Machine wie openssh server auf android installieren. Sie können putty auf iinux machine verwenden, um zu Windows Machine zu ssh. Sie können netstat verwenden, um es zu überprüfen, nachdem Sie openssh server auf Windows Machine installieren können.
Antworten:
Es hängt davon ab, wie Sie eine Verbindung herstellen möchten. Sie können Freigaben auf dem Windows-Computer erstellen und smb / cifs verwenden, um eine Verbindung zur Freigabe herzustellen.
Die Syntax hängt davon ab, ob Sie sich in einer Domäne befinden oder nicht.
Sie haben auch die Möglichkeit, die
$IPC
und administrative Freigaben einzuhängen . Sie können in Inter-Process Communication nachsehen, was Sie über die$IPC
Freigabe tun können .Es gibt immer:
Mit den letzten 3 müssen Sie zusätzliche Software installieren.
VNC kann von einer eigenständigen Binärdatei ausgeführt oder installiert werden.
Für RDP haben die meisten Linux-Systeme entweder bereits
rdesktop
installiert oder es ist im Paket-Manager verfügbar. Unter Verwendung von müssenrdesktop
Sie nur RDP-Verbindungen zu Ihrem Windows-System aktivieren, und dann können Sie RDP für eine vollständige GUI-Windows-Konsole verwenden.quelle
Ja, Sie können vom Linux-Client aus eine Verbindung zu Windows Machine herstellen. Dazu müssen Sie jedoch einen Server (z. B. Telnet, SSH, FTP oder einen anderen Server) auf einem Windows-Computer hosten und auf dem Linux-Computer den entsprechenden Client haben.
quelle
Wenn Sie eingeschaltet sind
Windows 10
, können SieOpenSSH
mithilfe des folgenden Powershell-Skripts installieren .Bitte beachten Sie, dass dieses Skript die DNS in Google DNS ändert. Da
OpenSSH
es nicht mit der StandarddistributionWindows10
verteilt wird, werden tatsächlich einige Dateien aus dem Internet heruntergeladen. Sie benötigen also eine funktionierende Internetverbindung und einen korrekten DNS-Server. Aus diesem Grund habe ich den statischen DNS-Server angegeben, nur für den Fall, dass Sie sich hinter einer Firewall befinden oder eine statische IP ohne DNS-Server verwenden.Sobald Sie dies getan haben, sollten Sie die IP-Adresse des
Windows
Host-Benutzers herausfindenDann aus dem
Linux/Unix
OS machenDabei ist Benutzername der Name des Kontos und
Windows_ip
die IP-Adresse des Windows-Computers, bei dem Sie sich anmelden möchtenquelle
Repair-SshdHostKeyPermission
nicht benötigt wird. Ich weiß nicht, ob dies wahr ist oder nicht, aber falls es so ist, möchte ich nicht, dass die Notiz für immer verloren geht.Vielleicht möchten Sie RDP oder Software wie teamviewer ausprobieren. Außerdem können Sie cygwin auf Ihrem Windows-Computer installieren und für den SSH-Zugriff konfigurieren, sodass Sie eine Shell erhalten, wie Sie sie von Linux kennen, wenn Sie eine Verbindung über SSH herstellen.
quelle
Sie sollten openssh server auf Windows Machine wie openssh server auf android installieren. Sie können putty auf iinux machine verwenden, um zu Windows Machine zu ssh. Sie können netstat verwenden, um es zu überprüfen, nachdem Sie openssh server auf Windows Machine installieren können.
quelle
Wenn Sie Git für Windows verwenden, können Sie bereits in Ihren Windows-Computer ssh.
Starten Sie einfach den ssh-Server:
Konfigurieren Sie dann Ihre Firewall mit diesem PowerShell-Befehl:
quelle