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 :
- Chọn giao thức là SSH
- Nhập vào IP của server để tiến hành ssh đến
- 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 !!