Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp

Windows 10 1809 và Windows Server 2019 đã có máy chủ SSH tích hợp dựa trên OpenSSH. Trong bài viết này, chúng tôi sẽ hướng dẫn cách cài đặt và định cấu hình máy chủ OpenSSH trên Windows 10 và kết nối với máy chủ đó từ xa qua giao thức SSH được bảo vệ (giống như trong Linux 🙂).

Bạn cũng có thể cài đặt máy chủ OpenSSH trong các phiên bản Windows trước, nhưng bạn phải tải xuống và cài đặt OpenSSH cho cổng win32 theo cách thủ công từ GitHub (https://github.com/powershell/Win32-OpenSSH). Ví dụ về cách cài đặt và cấu hình Win32-OpenSSH được đưa ra trong bài viết “Cách cài đặt và cấu hình máy chủ SFTP (SSH FTP) trên Windows?”.

Nội dung:

  • Cách cài đặt OpenSSH Server trên Windows?
  • Định cấu hình Máy chủ SSH trên Windows 10 / Windows Server 2019
  • Tệp cấu hình máy chủ OpenSSH (sshd_config)
  • Cách kết nối với Windows 10 qua SSH?

Cách cài đặt Máy chủ OpenSSH trên Windows?

Hãy xem cách cài đặt tính năng OpenSSH Server trên Windows 10 1903 (trong Windows Server 2019, quy trình này cũng giống như vậy).

Gói OpenSSH (như RSAT) được thêm vào các phiên bản Windows này (và mới hơn) dưới dạng Tính năng theo yêu cầu (FoD) .

Nếu bạn có quyền truy cập Internet trực tiếp, bạn có thể cài đặt OpenSSH bằng PowerShell:

Add-WindowsCapability -Online -Name OpenSSH.Server*

Hoặc sử dụng DISM:

dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

Bạn cũng có thể cài đặt OpenSSH trên Windows 10 thông qua Cài đặt (Ứng dụng -> Ứng dụng &Tính năng -> Quản lý các tính năng tùy chọn -> Thêm tính năng). Tìm Mở máy chủ SSH trong danh sách và nhấp vào Cài đặt .

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp

Để đảm bảo máy chủ OpenSSH đã được cài đặt, hãy chạy lệnh:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'

State : Installed

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp

Định cấu hình Máy chủ SSH trên Windows 10 / Windows Server 2019

Sau khi bạn đã cài đặt máy chủ OpenSSH trong Windows, bạn phải thay đổi sshd loại khởi động dịch vụ thành tự động và khởi động dịch vụ bằng PowerShell:
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp
Sử dụng netstat, đảm bảo rằng máy chủ SSH đang chạy và chờ kết nối trên cổng TCP 22:
netstat -na| find ":22"
Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp
Đảm bảo rằng Tường lửa của Bộ bảo vệ Windows cho phép kết nối đến Windows thông qua cổng TCP 22:
Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled

Name DisplayName Description Enabled
---- ----------- ----------- -------
OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Inbound rule for OpenSSH SSH Server (sshd) True

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp

Nếu quy tắc bị vô hiệu hóa ( Đã bật =Sai ) hoặc bị thiếu, bạn có thể tạo quy tắc gửi đến mới bằng lệnh ghép ngắn New-NetFirewallRule:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

Theo mặc định, các thành phần OpenSSH quan trọng được đặt trong các thư mục sau:

  • Các tệp thực thi của Máy chủ OpenSSH:C:\Windows\System32\OpenSSH\
  • sshd_config tệp (được tạo sau lần khởi động dịch vụ đầu tiên):C:\ProgramData\ssh
  • Nhật ký OpenSSH:C:\windows\system32\OpenSSH\logs\sshd.log
  • Tệp và khóa được ủy quyền:%USERPROFILE%\.ssh\

Sau khi cài đặt OpenSSH, một người dùng cục bộ mới (sshd) được tạo trên máy tính.

Tệp cấu hình máy chủ OpenSSH (sshd_config)

Bạn có thể thay đổi cài đặt máy chủ OpenSSH của mình trong tệp cấu hình:% programdata% \ ssh \ sshd_config .

Ví dụ:để từ chối kết nối SSH cho tài khoản người dùng miền cụ thể (hoặc tất cả người dùng miền), hãy thêm các lệnh này vào cuối tệp:

DenyUsers woshub\[email protected]
DenyUsers corp\*

Để chỉ cho phép kết nối SSH với nhóm miền cụ thể:

AllowGroups woshub\sshadmins

Hoặc bạn có thể cho phép truy cập vào một nhóm cục bộ:

AllowGroups sshadmins

Bạn có thể từ chối quyền truy cập vào các tài khoản có đặc quyền của quản trị viên. Trong trường hợp này, nếu bạn cần thực hiện bất kỳ hành động đặc quyền nào trong phiên SSH của mình, bạn sẽ phải sử dụng runas.

DenyGroups Administrators

Các hướng dẫn sau cho phép truy cập SSH bằng cách sử dụng khóa RSA và mật khẩu (chúng tôi sẽ xem xét cách sử dụng khóa RSA để truy cập Windows thông qua SSH trong chi tiết bài viết tiếp theo):

PubkeyAuthentication yes
PasswordAuthentication yes

Bạn có thể thay đổi cổng mà OpenSSH nhận kết nối trong chỉ thị Cổng của tệp sshd_config.

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp

Sau khi thực hiện bất kỳ thay đổi nào đối với tệp sshd_config, bạn cần khởi động lại dịch vụ sshd:

restart-service sshd

Làm cách nào để kết nối với Windows 10 qua SSH?

Giờ đây, bạn có thể cố gắng kết nối với Windows 10 của mình thông qua ứng dụng SSH (Tôi đang sử dụng PuTTY, nhưng bạn có thể sử dụng ứng dụng SSH tích hợp sẵn của Windows thay thế).

Ở lần kết nối đầu tiên, một yêu cầu tiêu chuẩn để thêm máy chủ vào danh sách các máy chủ SSH đã biết sẽ xuất hiện.

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp

Nhấp vào Có và đăng nhập vào Windows 10 của bạn trong người dùng Windows.

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp

Nếu kết nối SSH thành công, trình bao cmd.exe sẽ bắt đầu bằng một chuỗi nhắc nhở.

admin@win10pc C:\Users\admin>

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp

Bạn có thể chạy các lệnh, tập lệnh hoặc ứng dụng khác nhau trong dấu nhắc lệnh.

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp

Tôi thích làm việc trong bảng điều khiển PowerShell hơn. Để bắt đầu, hãy chạy lệnh sau:

powershell.exe

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp

Để thay đổi trình bao cmd.exe mặc định thành PowerShell cho OpenSSH, hãy thực hiện các thay đổi đối với sổ đăng ký bằng lệnh PowerShell sau:

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String –Force

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp

Khởi động lại kết nối SSH của bạn và đảm bảo rằng PowerShell hiện được sử dụng làm trình bao SSH mặc định (điều này được hiển thị bởi PS C:\Users\admin> ).

Kết nối Windows qua SSH bằng Máy chủ OpenSSH tích hợp

Bảng điều khiển PowerShell đã được khởi động trong phiên SSH của bạn và các tính năng quen thuộc hoạt động trong đó:tự động hoàn thành tab, tô sáng màu PSReadLine, lịch sử lệnh, v.v. Nếu người dùng hiện tại là thành viên của nhóm quản trị viên cục bộ, tất cả các lệnh phiên sẽ được thực thi ngay cả nếu UAC được bật.