Giới thiệu :

Trong hướng dẫn lần trước, mình đã hướng dẫn các bạn cách tạo user sudo để đăng nhập và disable đăng nhập ssh trực tiếp bằng user root. Nếu các bạn chưa làm về nó có thể tham khảo tại đây.

Trong hướng dẫn này mình sẽ hướng dẫn các bạn sử dụng thêm 1 phương pháp nữa nhằm bảo mật truy cập đối với server của chúng ta, đó là ssh sử dụng xác thực Public Key. Phương pháp này luôn hiệu quả và bảo mật vì xác thực Public Key cung cấp sức mạnh mật mã mà ngay cả mật khẩu cực kỳ dài cũng không thể cung cấp.

Bài lab này mình sử dụng mô hình server là CentOS 7 và client ssh tới là window 10.

Phần 1: Thực hiện cấu hình trên Server

SSH vào server bằng user thuctap đã tạo trước đó và thực hiện như sau

Tạo khóa trên server

Tạo 1 cặp ssh key bằng câu lệnh sau:

ssh-keygen -t rsa
  • Tại vị trí thứ 1 : Nhập vào nơi lưu key hoặc enter để tự động lưu vào file mặc định, bấm enter.
  • Tại vị trí thứ 2 : Nhập vào chuỗi mật khẩu để tăng tính bảo mật. Có thể sử dụng mật khẩu này để đăng nhập nếu không có mật khẩu của user.
  • Tại vị trí thứ 3 : Nhập lại chuỗi mật khẩu passphrase 1 lần nữa.

Di chuyển và phân quyền cho public key

Di chuyển Public Key đến vị trí mặc định của nó là /.ssh/authorized_keys

mv /home/thuctap/.ssh/id_rsa.pub /home/thuctap/.ssh/authorized_keys

Phân quyền cho các file và thư mục chứa keys.

chmod 600 /home/thuctap/.ssh/authorized_keys
chmod 700 .ssh

Chỉnh sửa file cấu hình

Chạy các lệnh sau đối với file /etc/ssh/sshd_config để khai báo thư mục đặt key.

sudo sed -i 's|#LoginGraceTime 2m|LoginGraceTime 2m|' /etc/ssh/sshd_config
sudo sed -i 's|#StrictModes yes|StrictModes yes|' /etc/ssh/sshd_config
sudo sed -i 's|#PubkeyAuthentication yes|PubkeyAuthentication yes|' /etc/ssh/sshd_config

Khởi động lại dịch vụ ssh

systemctl restart sshd

Sao chép file chứa Key

Để client có thể đăng nhập vào server thông qua xác thực key, ta cần copy file chứa key để xác thực phía client. File chứa key có vị trí tại :

/home/thuctap/.ssh/id_rsa

Phần 2: Thực hiên cài đặt phía Client window

Sau khi copy key phía server, sử dụng trình soan thảo văn bản hoặc sử dụng công cụ editor để lưu lại. Key được lưu trong file có phần mở rộng là .ppk

Tại đây mình sẽ lưu file với tên là rsauser. Sau khi xác định đường dẫn file. Mình sẽ sử dụng MobaXterm để thực hiện load key.

Load key với MobaXterm

Trên MobaXterm, click vào tab Tools

Trong các sub tab của Tools, kích chọn MobaKeyGen

Tiếp theo, chọn Load để load private key.

Chọn đường dẫn đến file copy key từ server đã lưu ở phần trên. Sau đó sẽ có 1 của sổ hiện ra như bên dưới, nhập vào mật khẩu Passphrase sau đó chọn Ok để tiếp tục.

Như vậy ta đã load xong. Tiếp tục chọn Save private key để lưu lại private key, sau này dùng cho việc ssh.

Đặt tên cho private key sau đó chọn Save để lưu lại.

Kiểm tra sử dụng SSH Key

Để kiểm tra, ta cần sử dụng key và ssh vào server. Hãy làm theo các bước sau :

Trên server chọn tab Session sau đó chọn New session

Tại đây làm theo các bước sau :

  1. Chọn giao thức là SSH
  2. Nhập vào IP của server để tiến hành ssh đến
  3. Tích chọn sử dụng private key để xác thực ssh bằng key

Sau đó chọn vào biểu tượng file để chọn đường dẫn private key.

Chọn private key vừa lưu có tên là privateky_user sau đó chọn Open để xác nhận.

Sau khi chọn file, chọn Ok để bắt đầu ssh tới server.

Ta sẽ ssh vào bằng user thuctap, sau khi nhập vào user ta sẽ không xác thực bằng mật khẩu của user đó mà sẽ sử dụng mật khẩu của Passphrase key.

Sau khi nhập mật khẩu, ta sẽ login được vào bằng user và thao tác như bình thường.

Kết luận :

Như vậy mình đã hướng dẫn các bạn cách để tạo key để xác thực bảo mật ssh rồi. Sau khi cấu hình, bạn có thể sử dụng để ssh với sự bảo mật và thao tác với server rồi. Nếu thấy hay hoặc hữu ích hãy để lại phần bình luận dưới comment nhé. Chúc các bạn thành công !!