NGUYEN XUAN CUONG

https://nxcuong.ued.vn

Hướng dẫn sử dụng SSH Key để kết nối đến Linux Server

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.
SSH
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
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây