我可以从 Linux shell 连接到 Windows 机器吗?

vis*_*vis 83 linux ssh windows

我可以使用 PuTTY/SSH 从 Windows 连接到 Linux 机器。我想反过来做 - 从 Linux 连接到 Windows 机器。

这可能吗?

2bc*_*2bc 29

这取决于您想如何连接。您可以在 Windows 机器上创建共享并使用 smb/cifs 连接到共享。

语法取决于您是否在域中。

# mount -t cifs //server/share /mnt/server --verbose -o user=UserName,dom=DOMAIN
Run Code Online (Sandbox Code Playgroud)

您还可以装载$IPC和管理共享。您可以查看进程间通信以了解您可以通过$IPC共享执行的操作。

总是有:

  • 研发计划
  • 虚拟网络
  • 远程登录
  • ssh
  • Windows 上的 Linux

对于最后 3 个,您需要安装其他软件。

VNC 可以从独立的二进制文件运行或安装。

对于 RDP,大多数 Linux 系统要么已经rdesktop安装,要么在包管理器中可用。使用rdesktop您只需启用与 Windows 系统的 RDP 连接,然后您就可以将 RDP 用于完整的 GUI Windows 控制台。


alp*_*989 9

如果您在 上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
Run Code Online (Sandbox Code Playgroud)

请注意,此脚本会将 dns 更改为 Google dns。因为 OpenSSH没有随默认Windows10发行版一起发行,所以它实际上会从互联网上下载一些文件。所以你需要一个有效的互联网连接和一个正确的 dns 服务器,这就是我指定静态 dns 服务器的原因,以防万一你在防火墙后面或使用没有 dns 服务器的静态 ip。

完成此操作后,您应该弄清楚Windows 主机的 ip 地址usign

ipconfig
Run Code Online (Sandbox Code Playgroud)

然后从Linux/Unix操作系统做

ssh username@Windows_ip
Run Code Online (Sandbox Code Playgroud)

其中 username 是帐户的名称,Windows_ip是您尝试登录的 Windows 计算机的 IP 地址


pra*_*tri 7

是的,您可以从 Linux 客户端连接到 Windows 机器。但是为此,您必须在 Windows 机器上托管某种服务器(即 telnet、ssh、ftp 或任何其他类型的服务器),并且您应该在 Linux 上拥有相应的客户端。

  • 由于 Windows 比 Linux 更依赖其 GUI,因此您最好的选择可能是 [RDP](https://en.wikipedia.org/wiki/Remote_Desktop_Protocol#Non-Microsoft_implementations)。 (3认同)
  • @H_7:Windows 支持 telnet 和 ftp 服务器,但默认情况下它们没有运行。您必须通过以下方式运行它们: 1. 转到控制面板 -> 2. 程序和功能 -> 3. 打开或关闭 Windows 功能。在这里您可以看到服务器或客户端的列表。您可以从这里运行 telnet 或 ftp 服务器。 (3认同)

mru*_*mru 7

也许您想尝试一下 RDP 或像 teamviewer 这样的软件。你也可以在你的 Windows 机器上安装 cygwin 并将其配置为 ssh 访问,这样当你通过 ssh 连接时,你会从 linux 获得一个 shell。


cow*_*tor 5

如果你在 windows 上使用 git,恭喜你,你已经可以 ssh 进入你的 windows 机器了。

只需启动 ssh 服务器:

net start "C:\Program Files\Git\usr\bin\sshd.exe"
Run Code Online (Sandbox Code Playgroud)

然后使用这个 powershell 命令配置你的防火墙:

New-NetFirewallRule -Name sshd -DisplayName 'SSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Run Code Online (Sandbox Code Playgroud)