Một trong các phương thức đăng nhập vào Linux Server khá an toàn đó là việc sử dụng SSH Key để thay thế cho mật khẩu. Mặc định mỗi VPS bạn sẽ đăng nhập vào bằng username root và mật khẩu root mà nhà cung cấp đã gửi cho bạn lúc thuê Linux Server, tuy nhiên việc sử dụng mật khẩu luôn có 2 nguy cơ lớn là:
– Bạn sẽ mất hoàn toàn nếu lộ mật khẩu.
– Các attacker có thể sử dụng Brute Force Attack để dò tìm mật khẩu.
Tạo SSH Key trên Linux Server
Đăng nhập vào Linux Server với quyền root, nhập lệnh
Trên Linux Server
ssh-keygen -t rsa
Tiếp tục server sẽ hỏi bạn có muốn thiết lập keypharse hay không, nếu muốn thì bạn nhập keypharse cần thiết lập rồi nhấn Enter, sau khi tạo xong server sẽ hiện như sauServer hỏi bạn muốn lưu private key này vào đâu mặc định
/root/.ssh/id_rsa
Hình trên bạn có thể thấy server có ghi đường dẫn lưu file
private key (id_rsa) và file
public key (id_rsa.pub)
Tiếp theo ta cần thay đổi tên file “
id_rsa.pub” thành “
authorized_keys” bằng lệnh
mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
Tạo SSH Key
Tại máy tính cần kết ối đến server, mở phần mềm WinSCP để download file id_rsa về máy tính
Tiếp theo mở phần mềm
puttygen để convert file này sang file có đuôi ppk
Donwload puttygen:
https://www.puttygen.com/download-putty
Mở phần mềm puttygen, và chọn Load
Chọn file id_rsa đã download từ server
Sau khi đã load xong file id_rsa, chọn Save Private Key, đặt tên file ví dụ “ssh-key-home-lab”
3.Cấu hình SSH sử dụng Pubkey để kết nối
Trên Linux Server
Chỉnh sửa file /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
Bỏ dấu # ở dòng
PubkeyAuthentication và
AuthorizedKeysFile
PubkeyAuthentication yes
AuthorizedKeyFile /root/.ssh/authorized_keys
Nếu bạn muốn chỉ sử dụng SSH Key để kết nối và không cần dùng Password
Chỉnh sửa dòng
#PasswordAuthentication yes thành
PasswordAuthentication no
Lưu ý: Khi tùy chỉnh thông số này, bạn chỉ có thể đăng nhập vào server bằng SSH Key, bạn không thể sử sụng Password để đăng nhập nữa
Sau khi chỉnh sửa xong, lưu file và khởi động lại dịch vụ sshd
systemctl restart ssh
4. Kết nối SSH đến Linux Server
Mở phần mềm putty, nhập địa chỉ IP server và port (mặc định port 22) Chọn tab SSH -> Authentication
Chọn Browse, tìm đến file Private Key định dạng PPK vừa khởi tạo bên trên
Nhập Username và putty sẽ sử dụng SSH Key để chứng thực SSH
Lưu ý : key ssh tạo ở user nào thì nhập tài khoản lúc này bằng user đó
Kiểm tra thử kết nối đến server không sử dụng Private Key
Server sẽ thông báo không hỗ trợ kiểu chứng thực, bởi vì ở trên chúng ta đã bỏ kiểu chứng thực bằng Password thay vào đó đã sử dụng SSH Key để chứng thực.
NẾU CLIENT LÀ MỘT MÁY LINUX
root@lb1-mariadb:~# ssh-keygen -t rsa
# Kiểm tra
root@lb1-mariadb:~# ls -1 ~/.ssh/id*
/root/.ssh/id_rsa
/root/.ssh/id_rsa.pub
# Copy qua các node còn lại
ssh-copy-id root@192.168.17.12
ssh-copy-id root@192.168.17.13
ssh-copy-id root@192.168.17.14
ssh-copy-id root@192.168.17.15
Sau khi copy qua các node còn lại thì ko cần nhập lại mật khẩu nữa