TaMinhTri avatar

Tạ Minh Trí

IT Infrastructure
  • Emailtaminhtri.it@gmail.com
  • Phone+84 961984570
  • Birthday23 March
  • LocationHo Chi Minh, Vietnam

Hướng dẫn truy cập CentOS Server từ Windows qua Public Key

 Xin chào các bạn, ở bài viết trước mình đã hướng dẫn các bạn cách SSH sử dụng Public Key để kết nối từ CentOS Client đến CentOS Server. Tiếp theo mình muốn giới thiệu đến các bạn cách để kết nối tới CentOS Server từ Windows.

1. Cài đặt OpenSSH trên CentOS Server:

  • Bước 1: Để có thể tạo được Public Key chúng ta cần phải cài đặt SSH Server và SSH Client bằng câu lệnh sau:

    sudo yum -y update

    sudo yum -y install openssh-server openssh-clients

  • Bước 2: Thực hiện kiểm tra Version của SSH bằng câu lệnh:

    ssh -V

  • Bước 3: Khởi động dịch vụ SSH:

    sudo systemctl start sshd


  • Bước 4: Kiểm tra trạng thái dịch vụ SSH:

    sudo systemctl status sshd


  • Bước 5: Khởi động dịch vụ OpenSSH tự động mỗi khi hệ thống khởi động lại:

    sudo systemctl enable sshd


2. Tạo Public Key trên Windows Client:

  • Bước 1: Trên Windows nhấn tổ hợp phím Windows + R. Nhập vào cmd sau đó Enter để vào chế độ Command Line.

  • Bước 2: Tạo cặp khóa SSH (SSH Key Pair) với kiểu mã hóa khuyến nghị tối thiểu 2048-bit RSA bằng cách nhập 1 trong 2 câu lệnh sau:

    ssh-keygen -t rsa


  • Lưu ý: mã hóa với số bit càng cao thì độ bảo mật càng tốt. Nếu muốn tăng số bit mã hóa lên ví dụ 4096-bit chúng ta sẽ sử dụng câu lệnh sau:

    ssh-keygen -t rsa -b 4096



  • Bước 3: Hệ thống sẽ yêu cầu nhập vào tên file để lưu key. Mặc định nếu nhấn Enter key sẽ được lưu tại C:\Users\%username%/.ssh/

  • Bước 4: Hệ thống sẽ yêu cầu bạn tạo Passphrase ( được dùng để bảo vệ Private key khỏi việc bị sử dụng bởi những người không biết passphrase) Khuyến khích sử dụng và lưu ý Windows sẽ không hiển thị những gì mà chúng ta nhập. Do mục đích demo mình sẽ bỏ qua bước này.

  • Hệ thống sẽ trả về một số thông tin cơ bản đã thiết lập trong đó:
  • File id_rsa là file Private Key dùng cho Client.
  • File id_rsa.pub là file Public Key dùng cho Server.


3. Chép Public Key từ Windows Client sang CentOS Server:

  • Trên Windows:
  • Bước 1: Nhập vào ô tìm kiếm PowerShell và khởi chạy PowerShell.

  • Bước 2: Sử dụng câu lệnh bên dưới để sao chép file Public Key từ Windows sang CentOS.

    cat ~/.ssh/id_rsa.pub | ssh user@host "cat >> ~/.ssh/authorized_keys"


  • Lưu ý: Thay đổi user host bằng tài khoản và IP của CentOS Server.
  • Bước 3: Một thông báo kết nối hiện ra. Nhập Yes để tiếp tục.

  • Bước 4: Nhập mật khẩu cho tài khoản CentOS để tiến hành copy Public Key.

  • Bước 5: Vào file known_hosts và xóa SSH key của IP CentOS Server.


  • Vậy là ta đã hoàn tất quá trình copy Public Key từ Windows sang CentOS.

4. Thiết lập trên CentOS Server để máy Windows có thể kết nối bằng Private Key:

  • Bước 1: Sử dụng trình edit văn bản để mở file /etc/ssh/sshd_config

    sudo nano /etc/ssh/sshd_config

  • Bước 2: Đảm bảo có 2 dòng sau trong file cấu hình, nếu có dấu # trước đó thì hãy xóa dấu # đi.

    PubkeyAuthentication yes

    AuthorizedKeysFile .ssh/authorized_keys


  • Bước 3: Thêm dấu # vào trước 2 dòng sau và file cấu hình sshd_config:

    #GSSAPIAuthentication Yes

    #GSSAPICleanupCredentials no

  • Bước 4: Nhấn tổ hợp phím Ctrl + O sau đó Enter để lưu và Ctrl + X để thoát khỏi chỉnh sửa.

  • Bước 5: Kiểm tra nội dung file authorized_keys được chép vào CentOS Server.

    cat /root/.ssh/authorized_keys


  • Bước 7: Phân quyền cho các thư mục chứa keys:

    chmod 700 /root/

    chmod 700 /root/.ssh/

    chmod 600 /root/.ssh/authorized_keys


  • Bước 8: Chạy câu lệnh sau để khởi động lại dịch vụ SSH:

    sudo systemctl restart sshd

    sudo service sshd restart

 

5. Tiến hành SSH tới CentOS Server từ Windows:

  • Tại Desktop nhấn tổ hợp phím Windows + R, Nhập vào cmd và chọn OK.

  • Một bảng Command màu đen sẽ hiện ra như sau:

  • Chúng ta sử dụng câu lệnh sau để SSH tới CentOS server:

    ssh -i “vi_tri_chua_private_key” username@dia_chi_ip_server -p “So_Port”

  • Ví dụ:

    ssh -i “C:\Users\Kilian\.ssh\id_rsa” root@192.168.1.22


  • Trong đó:
  • ssh -i : là lệnh khai báo SSH sử dụng Private Key File.
  • C:\Users\Kilian\.ssh\id_rsa : là đường dẫn chứa Private Key đã tải về từ CentOS Server trên máy Client.
  • root@192.168.1.22 : khai báo username được sử dụng và IP của CentOS Server.
  • -p : là số port nếu trên Server đã thay đổi SSH port thành port khác. Mặc định là 22.
  • Một thông báo xác thực Key sẽ hiện ra. Nhập Yes để tiến hành SSH.

  • Vậy là ta đã thành công SSH đến CentOS Server.


  • Các lần tiếp theo chúng ta chỉ cần sử dụng câu lệnh bên dưới để SSH tới Server:

    ssh <username>@<CentOS_Server_IP>

  • Trên đây là hướng dẫn SSH tới CentOS Server từ Windows sử dụng Public Key. Chúc các bạn thành công.


Author: Trí Tạ

Nhận xét

Tìm kiếm Blog này