QC

Hướng dẫn RDP qua SSH tunnel trên Windows

 Có thể các bạn cần RDP nhưng sợ mở port ra internet dễ bị tấn công thì đây là cách sử dụng SSH đăng nhập thông qua pubkey rất an toàn vì cần sở hữu đúng Key mới đăng nhập được.

Các bước tiến hành

Máy Remote (từ xa) - Máy A

Máy Client (máy dùng để điều khiển) - Máy B

Cài đặt port forward cho các dịch vụ SSH trên máy A (cài trên router - gọi nhà mạng nếu CGNAT)


1. Cài đặt SSH server để có thể đăng nhập bằng pubkey

(có thể tìm hiểu google hoặc chat GPT để tìm bài hướng dẫn  sử dụng ssh bằng Key)

Hướng dẫn tạo Pubkey:

Mở CMD thường sau đó gõ:

ssh-keygen -t ed25519 -f .ssh/authorized_keys -C "ABC@mail.com"code-box

Khí đó sẽ có các file authorized_keys, authorized_keys.pub trong thư mục ./<user_name>/.ssh/id_ed25519 và ./<user_name>/.ssh/authorized_keys.pub

Bạn sẽ cần lấy file authorized_keys.pub để sử dụng ở bước 2 (lưu vào máy A)



2. Sử dụng lệnh trên CMD để tạo Tunnel SSH

Khi dùng lệnh này sẽ mở một Port trên máy B (port 13389), khi đó mọi truy cập tới port 13389 ở trên máy B sẽ được chuyển qua Tunnel SSH để đi tới máy A.

Giải thích hơi khó hiểu nhưng mà khi thiết lập SSH tunnel xong thì chúng ta có thể kết nối RDP tới máy B bằng cách mở RDP và kết nối tới: localhost:13389 (trên máy B).

ssh -i C:/Users/<ten_user>/.ssh/authorized_keys -p <port_ssh> <ssh_user_name>@<ip/ddns> -vvvcode-box

Ví dụ: 
ssh -i C:/Users/admin/.ssh/authorized_keys -p 22 admin1@abc.ddns.net -vvv

Thay <ten_user> bằng tên user máy bạn - Máy B (có thể thấy khi bật CMD, đằng sau C:\Users\<user_name>
<port_ssh> là port được mở để truy cập ssh từ xa (mặc định port 22)
<ssh_user_name> là tên của user_name của tài khoản SSH (Máy A)
id_ed25519 là tên file Pubkey được tạo ra trên máy B.

Sau khi đăng nhập bằng Pubkey thành công sẽ có phiên SSH và có thể tiến hành RDP thông qua cổng <port_ssh>

Ví dụ remote máy A mở RDP trên port 3389 và máy B muốn remote ở cổng 13389 thì thực hiện như sau:
- ssh -p <ssh_port> -L 13389:localhost:3389 admin@abc.ddns.net


3. Cài đặt file config SSH trên máy A

Cài đặt SSH server cho máy A: Vào System =>Optional features => Add =>SSH server 
Tiếp theo sau khi cài đặt xong thì chạy lệnh: Start-Service sshd trên Power shell

Vào C:\ProgramData\ssh\sshd_config để sửa file cài đặt SSH

Bỏ dấu # để sử dụng lệnh, sửa các dòng bên dưới (xóa dấu # đi)

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes #đề phòng key không dùng được thì dùng pass để đăng nhập
PermitEmptyPasswords no

Ở chỗ này .ssh/authorized_keys bạn cần copy file ở bước 1 (authorized_keys.pub) dán vào folder C:/Users/<ten_user>/.ssh/

Lưu ý: authorized_keys là file có đuôi .pub chứ không phải folder

4. Cú pháp tạo tunnel SSH để sử dụng RDP windows


ssh -p <ssh_port> -L <tunnel_port>:localhost:<RDP_port> <RDP_user>@<IP/DDNS>code-box
Trong đó:
 <ssh_port> là port để kết nối SSH
<tunnel_port> port tạo ra để sử dụng cho RDP thông qua SSH tunnel (đường hầm)
<RDP_port> port RDP (mặc định 3389)
<RDP_user>@<IP/DDNS> là user_name và địa chỉ IP của máy chủ SSH

Ví dụ:

ssh -p 22 -L 13389:localhost:3389 admin@abc.ddns.net

Ý nghĩa: ssh ở cổng 22, tunnel sẽ chạy trên cổng 13389 đi tới máy A, cổng RDP trên máy A là 3389, máy A có địa chỉ tại abc.ddns.net với username là abc

Post a Comment

Previous Post Next Post