Thứ Sáu, 26 Tháng Tư, 2024
Trang chủWindows ClientsWindows 11Cách SSH vào WINDOWS 10/11 từ Remote Computer

Cách SSH vào WINDOWS 10/11 từ Remote Computer

Các phiên bản Windows mới nhất có bao gồm máy chủ và máy khách SSH tích hợp dựa trên OpenSSH. Điều này có nghĩa là giờ đây bạn có thể kết nối với máy tính Windows 10/11 hoặc Windows Server 2022/2019 bằng bất kỳ ứng dụng khách SSH nào, giống như các bản phân phối Linux. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách cấu hình OpenSSH trên Windows 10 và Windows 11 để có thể kết nối  bằng PuTTY hoặc bất kỳ ứng dụng SSH nào khác.

OpenSSH là phiên bản mã nguồn mở, đa nền tảng của Secure Shell (SSH) được người dùng Linux sử dụng từ lâu. Dự án này hiện được chuyển sang Windows và có thể được sử dụng làm máy chủ SSH trên hầu hết mọi phiên bản Windows.

Cách cài đặt SSH Server trên Windows 10/11

Bắt đầu từ phiên bản Windows 10 build 1809, OpenSSH Server đã được tích hợp trên các phiên bản Windows.

Cài đặt SSH từ cửa sổ Settings

Bạn có thể kích hoạt OpenSSH server trên Windows 10 hoặc 11 thông qua trang Settings của Windows. Để kích hoạt, bạn làm như sau:

  1. Vào Settings > Apps > Apps and features > Optional features 
  1. Nhấn vào Add a feature, chọn OpenSSH Server rồi nhấn Install.
  1. Đợi quá trình cài đặt OpenSSH server hoàn thành

Cài đặt SSH bằng câu lệnh

Bạn có có thể cài đặt SSH server bằng PowerShell bằng cách dùng lệnh sau:

Add-WindowsCapability -Online -Name OpenSSH.Server*
ssh to windows machine

Hoặc sử dụng lệnh DISM:

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

Nếu bạn muốn đảm bảo máy chủ OpenSSH đã được cài đặt, hãy chạy lệnh PS sau để kiểm tra:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Server*'

Kết quả sẽ trả về tên và trạng thái của máy chủ SSH

Name : OpenSSH.Server~~~~0.0.1.0

State : Installed
ssh into windows machine

Cài đặt SSH từ file ISO

Máy chủ OpenSSH trên Windows được phân phối dưới dạng Feature on Demand (FoD). Điều này có nghĩa là Windows không lưu trữ cục bộ các tệp nhị phân để cài đặt OpenSSH. Trong quá trình cài đặt các tính năng, Windows sẽ tải xuống các tệp này từ trên máy chủ Microsoft Update xuống. Nếu máy tính của bạn không được kết nối với Internet, bạn có thể cài đặt OpenSSH Server từ file ISO FoD bằng cách sau:

  1. Bạn có thể download file iso FoD của phiên bản Windows bạn đang dùng tại trang Volume Licensing Service Centre (VLSC) hoặc từ My Visual Studio.
  2. Mount file ISO FoD vào ổ đĩa CD/DVD ảo trên máy của bạn;
  3. Cài đặt OpenSSH.Server với câu lệnh sau:
    Add-WindowsCapability -online -name OpenSSH.Server~~~~0.0.1.0 -source -Source "E:\" -LimitAccess

Sử dụng lệnh PowerShell sau để gỡ cài đặt máy chủ SSH:

Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

* Ghi chú. Trên các phiên bản Windows cũ hơn (trước Windows 10 1809), bạn có thể cài đặt cổng Win32-OpenSSH cho Windows theo cách thủ công từ kho lưu trữ GitHub.

Các tệp nhị phân của OpenSSH nằm trong thư mục C:\Windows\System32\OpenSSH\.

connect to windows via ssh

Đường dẫn này cũng được thêm vào biến môi trường Path trong Windows:

$Env:Path

ssh into windows pc

Cách kích hoạt và cấu hình SSH Server trên Windows

Kích hoạt SSH

Kiểm tra trạng thái của các dịch vụ ssh-agent và sshd bằng lệnh PowerShell Get-Service:

Get-Service -Name *ssh*
ssh into windows computer

Theo mặc định, cả hai dịch vụ SSH đều bị dừng và không được thêm vào quá trình tự khởi động của Windows. Chạy các lệnh sau để khởi động các dịch vụ OpenSSH này và cấu hình tự động khởi động cùng windows cho chúng:

Start-Service sshd

Set-Service -Name sshd -StartupType 'Automatic'

Start-Service ssh-agent

Set-Service -Name ssh-agent -StartupType 'Automatic'
ssh to windows pc

Kiểm tra xem dịch vụ sshd có đang chạy và nghe trên cổng TCP/22 không bằng câu lệnh sau:

netstat -nao | find /i '":22"'
how to ssh to windows

Rule cho phép kết nối từ xa đến máy chủ SSH được thêm vào tường lửa của Windows Defender khi Máy chủ OpenSSH được cài đặt. Sử dụng lệnh PowerShell sau để kiểm tra xem Rule cho máy chủ OpenSSH đã được bật hay chưa:

Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled
ssh windows to windows

Nếu rule đó bị tắt, bạn cần bật nó lên bằng câu lệnh sau:

Get-NetFirewallRule -Name *OpenSSH-Server*|Enable-NetFirewallRule

Cấu hình SSH

Bạn có thể thay đổi cấu hình một số cài đặt cho máy chủ OpenSSH trên Windows bằng cách sử dụng tệp cấu hình %programdata%\ssh\sshd_config.

how to ssh from windows

Ví dụ: bạn có thể tắt xác thực mật khẩu SSH và chỉ để lại xác thực dựa trên khóa bằng cách thay đổi các dòng lệnh sau trong tệp sshd_config:

PubkeyAuthentication yes

PasswordAuthentication no

Tại đây bạn cũng có thể chỉ định một cổng kết nối TCP mới thay cho cổng 22 mặc định. Ví dụ như

Port 2233

Sử dụng các lệnh AllowGroups, AllowUsers, DenyGroups, DenyUsers, bạn có thể chỉ định users và groups được phép hoặc bị từ chối kết nối với Windows thông qua SSH:

  • DenyUsers blogcntt\user1@192.168.1.10 – từ chối kết nối đối với tên người dùng user1 từ IP 192.168.1.10
  • DenyUsers blogcntt\* – ngăn tất cả người dùng domain blogcntt kết nối tới máy chủ qua SSH;
  • AllowGroups blogcntt\ssh_allow — chỉ cho phép người dùng từ nhóm blogcntt\ssh_allow kết nối máy chủ.

Các Rule cho phép và từ chối của sshd được xử lý theo thứ tự ưu tiên sau: DenyUsers, AllowUsers, DenyGroups và AllowGroups..

Ví dụ: Để cho phép kết nối SSH với tài khoản user1 từ IP 192.168.1.10,bạn thêm Rule sau

AllowUsers user1@192.168.1.10

Sau khi đã thay đổi file sshd_config, bạn cần khởi động lại dịch vụ sshd:

Get-Service sshd|Restart-Service –force
how to ssh into windows machine

Kết nối tới Windows thông qua SSH

Bây giờ bạn có thể kết nối với máy tính Windows bằng bất kỳ ứng dụng SSH nào. Để kết nối từ Linux, hãy sử dụng lệnh:

ssh -p 22 admin@192.168.1.90
  • admin là người dùng Windows cục bộ mà bạn muốn kết nối. Tài khoản này phải là thành viên của nhóm Administrators.
  • 192.168.1.90 là địa chỉ IP hoặc FQDN máy từ xa.
ssh connect to windows

Bạn có thể sử dụng ứng dụng Putty để kết nối với máy tính Windows thông qua SSH:

  1. Download và chạy putty.exe;
  2. Nhập hostname hoặc IP của máy bạn muốn kết nối qua SSH;
  3. Chọn loại  Connection là SSH và đảm bảo nhập port là 22 hoặc port bất kỳ mà bạn đã đổi của SSH server;
  1. Nhấn Open để kết nối;
  2. Lần đầu tiên bạn kết nối với máy chủ Windows qua SSH, Cảnh báo bảo mật sẽ xuất hiện yêu cầu bạn xác nhận rằng bạn muốn thêm một ssh-ed25519 key fingerprint của máy từ xa vào máy của mình. Nếu bạn tin tưởng máy, hãy nhấp vào nút Accept. Thao tác này sẽ thêm máy chủ đó vào danh sách các máy chủ SSH đã biết;

Chú ý. OpenSSH fingerprint được lưu trữ tại C:\ProgramData\ssh\ssh_host_ecdsa_key.pub. Bạn có thể xem ECDSA key fingerprint hiện tại trên máy chủ Windows bằng lệnh:

ssh-keygen -lf C:\ProgramData\ssh\ssh_host_ed25519_key.pub
ssh from windows to windows
  1. Một cửa sổ Putty sẽ xuất hiện. Tại đây, bạn cần nhập tên người dùng và mật khẩu Windows mà bạn muốn sử dụng để kết nối;
    • connect to windows ssh
  1. Giờ bạn đã có thể chạy được lệnh trên máy từ xa
    how to ssh into a windows machine

Bạn cũng có thể sử dụng ứng dụng SSH tích hợp sẵn trên Windows để kết nối với một máy chủ Windows khác. Cài đặt ứng dụng ssh.exe trên Windows bằng lệnh:

Add-WindowsCapability -Online -Name OpenSSH.Client*

Kết nối tới máy Windows từ xa bằng lệnh sau:

ssh root@192.168.13.202

Lần đầu kết nối, bạn sẽ cần thêm ECDSA key fingerprint  của SSH server vào danh sách đã biết. Để thực hiện, nhấn yes>enter rồi nhập mật khẩu máy từ xa.

ssh to windows computer

Giờ đây, bạn có thể sử dụng các công cụ OpenSSH.Client (scp.exe, sftp.exe) để sao chép file giữa các máy chủ bằng giao thức SSH. 

Lệnh sau sẽ sao chép file test1.log sang máy chủ Windows SSH từ xa:

scp.exe D:\PS\test1.log root@192.168.13.202:c:\temp
connect to windows with ssh
Bài viết liên quan

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

Bài viết nổi bật

Ý kiến gần đây