Tôi có thể kết nối với máy Windows từ Linux shell không?


68

Tôi có thể kết nối với các máy Linux từ Windows bằng PuTTY / SSH. Tôi muốn thực hiện theo cách khác - kết nối với máy Windows từ Linux.

Điều này có thể không?


Xem câu trả lời dưới đây: unix.stackexchange.com/a/427739/242983 . OpenSSH hiện được hỗ trợ nguyên bản bởi bản cập nhật mới nhất của Windows10. Tuy nhiên, nó không có sẵn cho các phiên bản cũ hơn. Vui lòng cập nhật Windows10 của bạn trước khi thử điều này.
alpha_989

@M Biếnearth Bởi vì đôi khi bạn chỉ muốn một cái gì đó hoạt động ra khỏi hộp mà không cần đọc thêm.
Zimano

Câu trả lời:


23

Nó phụ thuộc vào cách bạn muốn kết nối. Bạn có thể tạo chia sẻ trên máy Windows và sử dụng smb / cifs để kết nối với chia sẻ.

Cú pháp sẽ phụ thuộc vào việc bạn có ở trong miền hay không.

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

Bạn cũng có khả năng gắn kết $IPCvà chia sẻ hành chính. Bạn có thể xem xét Giao tiếp giữa các quá trình để biết những gì bạn có thể làm thông qua $IPCchia sẻ.

Luôn luôn có:

  • RDP
  • VNC
  • điện thoại
  • ssh
  • Linux trên Windows

Với 3 phần cuối bạn cần cài đặt thêm phần mềm.

VNC có thể được chạy từ nhị phân độc lập hoặc được cài đặt.

Đối với RDP, hầu hết các hệ thống Linux đều đã rdesktopđược cài đặt hoặc có sẵn trong trình quản lý gói. Sử dụng rdesktopbạn chỉ phải kích hoạt các kết nối RDP cho hệ thống Windows của bạn và sau đó bạn sẽ có thể sử dụng RDP cho bảng điều khiển Windows GUI đầy đủ.


7

Có, bạn có thể kết nối với Windows Machine từ máy khách Linux. Nhưng để làm được điều đó, bạn phải lưu trữ một số loại máy chủ (ví dụ telnet, ssh, ftp hoặc bất kỳ loại máy chủ nào khác) trên máy Windows và bạn nên có ứng dụng khách tương ứng trên Linux.


2
Vì Windows phụ thuộc nhiều vào GUI của nó hơn Linux, nên đặt cược tốt nhất của bạn có lẽ là RDP .
cjm

Tôi không nghĩ rằng một cái gì đó như ftp có nghĩa là trong câu hỏi. Và telnet - ... thật sao?
người dùng không xác định

Vâng, anh ấy có lẽ có nghĩa là ...
jcora

@pradeepchhetri và Windows có một số máy chủ này hoạt động theo mặc định không?
H_7

3
@ H_7: Windows hỗ trợ máy chủ telnet và ftp nhưng theo mặc định, chúng không chạy. Bạn phải làm cho chúng chạy bằng cách: 1. Chuyển đến Bảng điều khiển -> 2. Chương trình và tính năng -> 3. Bật hoặc tắt các tính năng của Windows. Tại đây bạn có thể xem danh sách các máy chủ hoặc máy khách. Bạn có thể chạy telnet hoặc máy chủ ftp từ đây.
pradeepchhetri

5

Nếu bạn đang bật Windows 10, bạn có thể cài đặt OpenSSHbằng tập lệnh Powershell sau.

#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

Xin lưu ý rằng tập lệnh này sẽ thay đổi dns thành Google dns. Vì OpenSSHkhông được phân phối với phân phối mặc định Windows10, nên nó thực sự sẽ tải xuống một số tệp từ internet. Vì vậy, bạn cần một kết nối internet hoạt động và một máy chủ dns chính xác, đó là lý do tại sao tôi chỉ định máy chủ dns tĩnh, chỉ trong trường hợp bạn đứng sau tường lửa hoặc sử dụng ip tĩnh không có máy chủ dns.

Một khi bạn đã làm điều này, bạn nên tìm ra địa chỉ IP của Windows máy chủ lưu trữ

ipconfig

Sau đó, từ Linux/Unixhệ điều hành làm

ssh username@Windows_ip

Trong đó tên người dùng là tên của tài khoản và Windows_iplà địa chỉ IP của máy tính Windows bạn đang cố đăng nhập


Trên cài đặt windows của tôi, không có gì ngoại trừ dòng đầu tiên được chạy. Câu trả lời là "Sart-Sleep không được nhận dạng như một lệnh bên trong hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp bó". Vì vậy, đây không hoàn toàn là trình cắt cookie như bạn muốn :-)
levitopher

1
Một người dùng ẩn danh vừa lưu ý trong một chỉnh sửa (không thành công) rằng dòng bắt đầu bằng Repair-SshdHostKeyPermissionlà không cần thiết. Tôi không biết điều này có đúng hay không, nhưng trong trường hợp đó là tôi không muốn ghi chú bị mất mãi mãi.
roaima

4

Có thể bạn muốn dùng thử RDP hoặc phần mềm như teamviewer. Ngoài ra, bạn có thể cài đặt cygwin trên máy tính windows của mình và định cấu hình nó để truy cập ssh, vì vậy bạn sẽ nhận được một shell như bạn biết từ linux khi bạn kết nối bằng ssh.


2

Bạn nên cài đặt máy chủ openssh trên Windows Machine như máy chủ openssh trên Android. Bạn có thể sử dụng putty trên máy iinux để ssh vào windows Machine. Bạn có thể sử dụng netstat để kiểm tra sau khi bạn có thể cài đặt máy chủ openssh trên máy Windows.


1
Tại sao bạn cần putty trên các máy linux để ssh lên windows? Nó thường được cài đặt trên các máy linux .. phải không?
alpha_989

2

Nếu bạn sử dụng git trên windows, xin chúc mừng, bạn đã có thể ssh vào máy windows của mình.

Chỉ cần khởi động máy chủ ssh:

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

Sau đó cấu hình tường lửa của bạn bằng lệnh powershell này:

New-NetFirewallRule -Name sshd -DisplayName 'SSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.