Чи можу я підключитися до машини Windows з оболонки Linux?


68

Я можу підключитися до машин Linux з Windows за допомогою PuTTY / SSH. Я хочу зробити навпаки - підключитися до машини Windows з Linux.

Чи можливо це?


Відповідь див. Нижче: unix.stackexchange.com/a/427739/242983 . OpenSSH тепер підтримується на самому новому оновленнях Windows10. Однак він не доступний для старих версій. Будь ласка, оновіть свою Windows10, перш ніж спробувати.
alpha_989

@Manishearth Тому що іноді просто потрібно щось, що працює з коробки, не вимагаючи додаткового читання.
Зімано

Відповіді:


23

Це залежить від того, як ви хочете підключитися. Ви можете створювати спільні папки на машині Windows і використовувати smb / cifs для підключення до спільного доступу.

Синтаксис залежатиме від того, перебуваєте ви в домені чи ні.

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

Ви також маєте змогу встановлювати $IPCта адміністративні акції. Ви можете ознайомитись з міжпроцесорною комунікацією, що можна зробити через $IPCакцію.

Завжди є:

  • RDP
  • VNC
  • telnet
  • ssh
  • Linux у Windows

З останніми 3 потрібно встановити додаткове програмне забезпечення.

VNC можна запускати з автономного бінарного файлу або встановлювати.

Для RDP більшість систем Linux або вже rdesktopвстановлені, або вони доступні в менеджері пакетів. Використовуючи rdesktopлише вам, потрібно ввімкнути підключення RDP до вашої системи Windows, і тоді ви зможете використовувати RDP для повної консолі Windows GUI.


7

Так, ви можете підключитися до Windows Machine від клієнта Linux. Але для цього вам потрібно розмістити якийсь сервер (тобто telnet, ssh, ftp чи будь-який інший сервер) на машині Windows, і у вас повинен бути відповідний клієнт на Linux.


2
Оскільки Windows більшою мірою залежить від свого графічного інтерфейсу, ніж Linux, можливо, найкраща ставка - це RDP .
CJM

Я не думаю, що щось на зразок ftp малося на увазі у питанні. А telnet - ... справді?
користувач невідомий

Так, він, мабуть, мав на увазі ssh ...
jcora

@pradeepchhetri і чи має деякі з цих серверів Windows за замовчуванням?
H_7

3
@ H_7: Windows підтримує telnet і ftp-сервер, але вони за замовчуванням не працюють. Ви повинні змусити їх виконувати: 1. Перейдіть до Панелі управління -> 2. Програми та функції -> 3. Увімкніть або вимкніть функції Windows. Тут ви можете побачити список серверів або клієнта. Ви можете запустити сервер telnet або ftp звідси.
pradeepchhetri

5

Якщо увімкнено Windows 10, ви можете встановити OpenSSHза допомогою наступного сценарію 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

Зауважте, що цей скрипт змінить dns на Google dns. Оскільки OpenSSHне розповсюджується за замовчуванням Windows10, він фактично завантажує деякі файли з Інтернету. Тому вам потрібне робоче підключення до Інтернету та правильний dns-сервер, саме тому я вказав статичний dns-сервер, про всяк випадок, якщо ви знаходитесь за брандмауером або використовуєте статичний ip без серверу dns.

Після цього ви повинні з'ясувати ip адресу Windows хост-сервера

ipconfig

Потім з Linux/UnixОС зробіть

ssh username@Windows_ip

де ім'я користувача - це ім’я облікового запису і Windows_ipє ip адресою комп'ютера Windows, на який ви намагаєтесь увійти


У моїй установці Windows нічого, крім першого рядка, не запускається. Відповідь "Sart-Sleep не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма чи пакетний файл". Тож це не зовсім настільки печиво, як хотілося б :-)
levitopher

1
Анонімний користувач щойно зазначив у (невдалому) редагуванні, що рядок, що починається з Repair-SshdHostKeyPermissionцього не потрібен. Я не знаю, правда це чи ні, але, якщо це так, я не хочу, щоб записка була загублена назавжди.
roaima

4

Можливо, ви хочете спробувати RDP або програмне забезпечення, наприклад teamviewer. Крім того, ви можете встановити cygwin на свою машину Windows і налаштувати його на доступ до ssh, так що ви отримаєте оболонку, як ви знаєте її з Linux, коли ви підключитесь до ssh.


2

Ви повинні встановити opensh-сервер на Windows Machine, як сервер openssh на android.Ви можете використовувати шпаклівку на iinux машині для ssh до Windows Machine. Ви можете використовувати netstat, щоб перевірити це після встановлення opensh-сервера на Windows-машині.


1
навіщо вам потрібна шпаклівка на машинах Linux, щоб ssh на windows? ssh він, як правило, вже встановлений на машинах Linux ..
alpha_989

2

Якщо ви використовуєте git на windows, поздоровлення, ви вже можете сш у свою машину Windows.

Просто запустіть ssh-сервер:

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

Потім налаштуйте брандмауер за допомогою цієї команди shell:

New-NetFirewallRule -Name sshd -DisplayName 'SSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.