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