Я могу подключиться к машинам Linux из Windows с помощью PuTTY/SSH. Я хочу сделать наоборот - подключиться к машине Windows из Linux.
Это возможно?
решение1
Это зависит от того, как вы хотите подключиться. Вы можете создать общие ресурсы на машине Windows и использовать smb/cifs для подключения к общему ресурсу.
Синтаксис будет зависеть от того, находитесь ли вы в домене или нет.
# mount -t cifs //server/share /mnt/server --verbose -o user=UserName,dom=DOMAIN
У вас также есть возможность монтировать $IPC
и административные общие ресурсы. Вы можете посмотреть в разделе Inter-Process Communication, что вы можете сделать через $IPC
общий ресурс.
Всегда:
- РДП
- ВНК
- телнет
- сш
- Linux на Windows
В последних трех случаях вам необходимо установить дополнительное программное обеспечение.
- Кпым(telnet / ssh сервер)
- МобаSSH(ssh-сервер)
- Cygwin(запустить среду Linux внутри Windows)
- DamnSmall Linux - внутри Windows(например, Cygwin запускает DSL внутри Windows)
VNC можно запустить из автономного двоичного файла или установить.
Для RDP большинство систем Linux либо уже установлены rdesktop
, либо доступны в менеджере пакетов. Используя rdesktop
RDP, вам нужно только включить подключения к вашей системе Windows, и тогда вы сможете использовать RDP для полноценной графической консоли Windows.
решение2
Если вы используете 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, на который вы пытаетесь войти.
решение3
Да, вы можете подключиться к машине Windows с клиента Linux. Но для этого вам нужно разместить какой-то сервер (например, telnet, ssh, ftp или любой другой сервер) на машине Windows и у вас должен быть соответствующий клиент на Linux.
решение4
Если вы используете git на Windows, поздравляю, вы уже можете подключиться к своей машине Windows по ssh.
Просто запустите ssh-сервер:
net start "C:\Program Files\Git\usr\bin\sshd.exe"
Затем настройте брандмауэр с помощью этой команды PowerShell:
New-NetFirewallRule -Name sshd -DisplayName 'SSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22