Trong chuỗi series về CentOS, hôm nay mình sẽ hướng dẫn các bạn cách SSH tới CentOS Server từ macOS sử dụng Private Key / Public Key. Chúng ta cùng bắt đầu thôi nào!
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 macOS:
- Bước 1: 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 chạy 1 trong 2 câu lệnh sau trong Terminal.
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 2: 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 /root/.ssh/id_rsa
- Bước 3: 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 ý macOS 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
- Bước 4: Cho phép CentOS Server SSH tới macOS bằng cách mở Remote Login trên macOS.
system preferences -> sharing->enable remote login
3. Thiết lập trên CentOS Server để macOS có thể kết nối
- 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: Copy Public Key vừa tạo ở trên macOS vào file authorized_keys
scp <username>@<macOS_IP>:/Users/<username>/.ssh/id_rsa.pub /root/.ssh/authorized_keys
- Trong trường hợp này là:
scp tblap00019@192.168.1.24:/Users/tblap00019/.ssh/id_rsa.pub /root/.ssh/authorized_keys
- Một thông báo yêu cầu kết nối sẽ hiện lên. Nhập Yes để tiếp tục.
- Nhập mật khẩu của macOS để tiến hành copy file Public Key sang CentOS.
- Vậy là ta đã hoàn tất copy Public Key sang CentOS Server.
- Bước 6: Kiểm tra lại xem Public Key đã được copy vào file authorized_keys hay chưa.
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
4. Truy cập CentOS Server từ macOS:
- Nhập câu lệnh sau để truy cập CentOS Server:
ssh -i <Location_of_Private_Key> <username>@<IP/Host> -p <Port>
- Lưu ý:
- Đường dẫn tới file Private Key phải bao gồm tên file.
- Port mặc định là 22 thì không cần nhập trường -p.
ssh -i ~/Users/tblap00019/.ssh/id_rsa root@192.168.1.22
- Một thông báo yêu cầu kết nối hiện ra. Nhập Yes để kết nối.
- Vậy là ta đã hoàn tất SSH đến CentOS Server sử dụng Private Key trên macOS.
- Chúc các bạn thành công!
Author: Trí Tạ
Đăng nhận xét