SSH(Secure Shell) là một giao thức điều khiển từ xa cho phép người dùng đăng nhập vào server từ xa. Nó sử dụng cơ chế mã hoá bảo mật nhằm ngăn chặn hacker đánh cắp thông tin trên đường truyền. Các chương trình trước đây: telnet, rlogin không sử dụng phương pháp mã hoá, vì thế bất cứ ai cũng có thể nghe trộm thậm chí đọc được toàn bộ nội dung của phiên làm việc bằng cách sử dụng một số công cụ đơn giản. Sử dụng SSH là biện pháp hữu hiệu bảo mật dữ liệu trên đường truyền từ hệ thống này đến hệ thống khác.
Xem thêm:
Tại sao nên sử dụng SSH Key
Khi bạn sử dụng SSH để đăng nhập vào một server nào đó, bạn được yêu cầu phải cung cấp mật khẩu, điều này sẽ dẫn đến việc thất lạc hay quên mật khẩu, bị lộ mật khẩu và mất quyền kiểm soát server.
Đối với các bạn làm nhiều về hệ thống việc cấu hình hay tạo ra các scripts có sự liên hệ giữa các server thì việc nhập mật khẩu bằng tay thật sự bất tiện. Để giải quyết vấn đề này, chúng ta sử dụng SSH Key để chứng thực đăng nhập giữa các máy với nhau.
Tạo SSH Key Pair
Để tạo SSH key bạn thực hiện lệnh sau:
ssh-keygen -t rsa
Khi thực hiện lệnh hệ thống sẽ lần lượt hỏi nơi lưu SSH key, passphrase. Nếu để mặc định thì bạn cứ để trống và Enter.
Theo hình trên thì sau khi mình tạo SSH Key sẽ có 2 file trong thư mục /home/remote/.ssh/
- ~/.ssh/id_rsa [private key]
- ~/.ssh/id_rsa.pub [public key]
Copy public key đến remote server
Giờ chúng ta đã có thể copy public key đến remote server( ~/.ssh/authorized_keys). Chúng ta có thể làm thủ công hoặc sử dụng lệnh ssh-copy-id
Thủ công
Copy SSH theo cách thủ công chúng ta làm như sau:
Xem nội dung Public Key bằng lệnh:
cat /home/remote/.ssh/id_rsa.pub
sau đó bạn copy toàn bộ nội dung Public Key
Remote đến server muốn copy SSH key thực hiện các lệnh sau (nhớ đăng nhập user bạn muốn thêm key nhé):
mkdir ~/.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
Sau đó mở file authorized_keys và dán toàn bộ nội dung public key bạn đã copy ở trên.
Sử dụng lệnh
Nếu bạn muốn sử dụng lệnh để copy ssh key thì thực hiện như sau:
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.199
Trong đó 192.168.1.199 là IP của remote server bạn muốn thêm key.
Nhập password của user để hoàn thành.
21 [email protected]'s password: Now try logging into the machine, with "ssh '192.168.1.199'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Kiểm tra ssh không cần mật khẩu
Remote đến server bạn vừa copy SSH Key bằng lệnh:
ssh [email protected]
Nếu không cần mật khẩu mà vẫn đăng nhập được tức là bạn đã cấu hình SSH Key thành công rồi đó 🙂