Kiến thức cơ bản về Linux: Cách tạo và cài đặt khóa SSH trên Shell

theanh

Administrator
Nhân viên
Khóa SSH cung cấp một cách đăng nhập vào máy chủ bằng SSH cực kỳ an toàn so với việc chỉ phụ thuộc vào mật khẩu. Trong khi mật khẩu có nguy cơ bị bẻ khóa cuối cùng, thì khóa SSH lại không thể giải mã bằng cách dùng vũ lực. Trên thực tế, việc tạo cặp khóa cung cấp cho người dùng hai chuỗi ký tự dài tương ứng với khóa công khai cũng như khóa riêng tư. Do đó, người dùng có thể đặt khóa công khai trên bất kỳ máy chủ nào và sau đó mở khóa bằng cách kết nối với máy khách đã sở hữu khóa riêng tư. Khi khớp hai khóa, hệ thống sẽ mở khóa mà không cần phụ thuộc vào mật khẩu. Bảo mật có thể được bảo vệ thông minh hơn bằng cách bảo vệ khóa riêng bằng cụm mật khẩu.

Cài đặt Khóa SSH trên Linux - Hướng dẫn từng bước​

Dưới đây là hướng dẫn từng bước nêu chi tiết quy trình cài đặt Khóa SSH trên máy chủ Linux:

Bước một: Tạo cặp khóa RSA​

Bước đầu tiên trong quy trình cài đặt là tạo cặp khóa trên máy khách, thường là hệ thống của riêng bạn. Người dùng cần sử dụng lệnh sau:
Mã:
ssh-keygen -o -b 4096 -t rsa
Lệnh trên sẽ khởi động quá trình cài đặt Khóa SSH cho người dùng. Tùy chọn -o hướng dẫn ssh-keygen lưu trữ khóa riêng tư ở định dạng OpenSSH mới thay vì định dạng PEM cũ (và tương thích hơn). Rất khuyến khích sử dụng tùy chọn -o vì định dạng OpenSSH mới có khả năng chống bẻ khóa mật khẩu bằng cách dùng vũ lực cao hơn. Trong trường hợp tùy chọn -o không hoạt động trên máy chủ của bạn (tùy chọn này đã được giới thiệu vào năm 2014) hoặc bạn cần khóa riêng ở định dạng PEM cũ, hãy sử dụng lệnh 'ssh-keygen -b 4096 -t rsa'.

Tùy chọn -b của lệnh ssh-keygen được sử dụng để đặt độ dài khóa thành 4096 bit thay vì 1024 bit mặc định vì lý do bảo mật.

Khi nhập lệnh Gen Key chính, người dùng cần thực hiện bài tập sau bằng cách trả lời các lời nhắc sau:
Mã:
Nhập tệp mà bạn muốn lưu khóa (/home/demo/.ssh/id_rsa)
Người dùng cần nhấn ENTER để lưu tệp vào trang chủ của người dùng

Lời nhắc tiếp theo sẽ như sau:
Mã:
Nhập mật khẩu
Nếu, với tư cách là quản trị viên, bạn muốn chỉ định cụm mật khẩu, bạn có thể làm như vậy khi được nhắc (theo câu hỏi ở trên), mặc dù điều này là tùy chọn và bạn có thể để trống trường trong trường hợp bạn không muốn chỉ định cụm mật khẩu.

Tuy nhiên, cần lưu ý rằng việc nhập cụm mật khẩu duy nhất sẽ mang lại một loạt lợi ích được liệt kê dưới đây:

1. Tính bảo mật của khóa, ngay cả khi được mã hóa cao, phụ thuộc phần lớn vào tính vô hình của khóa đối với bất kỳ bên nào khác. I 2. Trong trường hợp có khả năng xảy ra là khóa riêng an toàn với cụm mật khẩu rơi vào tay người dùng trái phép, họ sẽ không thể đăng nhập vào các tài khoản liên kết của mình cho đến khi họ có thể bẻ khóa cụm mật khẩu. Điều này luôn mang lại cho nạn nhân (người dùng bị hack) thêm thời gian quý báu để ngăn chặn cuộc tấn công. Mặt hạn chế là việc gán mật khẩu cho khóa yêu cầu bạn phải nhập mật khẩu đó mỗi khi sử dụng Cặp khóa, khiến quá trình này hơi tẻ nhạt nhưng vẫn hoàn toàn an toàn.

Sau đây là phác thảo chung về quy trình tạo khóa đầu cuối:



Bây giờ, có thể truy tìm khóa công khai đến liên kết ~/.ssh/id_rsa.pub

Khóa riêng (nhận dạng) bây giờ có thể truy tìm đến liên kết-/home/demo/.ssh/id_rsa 3

Bước hai: Sao chép Khóa công khai​

Sau khi cặp khóa riêng biệt đã được tạo, bước tiếp theo là đặt khóa công khai trên máy chủ ảo mà chúng ta định sử dụng. Người dùng có thể sao chép khóa công khai vào tệp authorized_keys của máy mới bằng lệnh ssh-copy-id. Dưới đây là định dạng được quy định (chỉ là ví dụ) để nhập tên người dùng và địa chỉ IP và phải được thay thế bằng các giá trị hệ thống thực tế:
Mã:
ssh-copy-id [emailprotected]
Ngoài ra, người dùng có thể dán khóa bằng cách sử dụng SSH (theo lệnh đã cho):
Mã:
cat ~/.ssh/id_rsa.pub | ssh [emailprotected] "cat >> ~/.ssh/authorized_keys"
Khi sử dụng, bất kỳ lệnh nào ở trên cũng sẽ gửi thông báo sau đến hệ thống của bạn:

Không thể thiết lập tính xác thực của máy chủ '192.168.0.100 '. Dấu vân tay khóa RSA là b1:2d:32:67:ce:35:4d:5f:13:a8:cd:c0:c4:48:86:12. Bạn có chắc chắn muốn tiếp tục kết nối không (có/không)? có Cảnh báo: Đã thêm vĩnh viễn '192.168.0.100' (RSA) vào danh sách máy chủ đã biết. Mật khẩu của [emailprotected]: Bây giờ hãy thử đăng nhập vào máy, với "ssh '[emailprotected]'", và kiểm tra: ~/.ssh/authorized_keys để đảm bảo chúng tôi không thêm khóa bổ sung mà bạn không mong đợi.

Sau bài tập trên, người dùng đã sẵn sàng tiếp tục và đăng nhập vào [emailprotected] mà không cần nhắc nhập mật khẩu. Tuy nhiên, nếu trước đó bạn đã gán một cụm mật khẩu cho khóa (theo Bước 2 ở trên), bạn sẽ được nhắc nhập cụm mật khẩu tại thời điểm này (và mỗi lần cho các lần đăng nhập tiếp theo).

Bước ba (Bước này là tùy chọn): Vô hiệu hóa mật khẩu để tạo điều kiện cho Root Login​

Sau khi người dùng đã sao chép khóa SSH của họ vào máy chủ của bạn và đảm bảo đăng nhập liền mạch chỉ bằng khóa SSH, họ có tùy chọn hạn chế đăng nhập root và chỉ cho phép thông qua khóa SSH. Để thực hiện việc này, người dùng cần truy cập tệp cấu hình SSH bằng lệnh sau:
Mã:
sudo nano /etc/ssh/sshd_config
Sau khi truy cập tệp, người dùng cần tìm dòng trong tệp có chứa PermitRootLogin và sửa đổi dòng đó để đảm bảo kết nối an toàn khi sử dụng khóa SSH. Lệnh sau sẽ giúp bạn thực hiện điều đó:
Mã:
PermitRootLogin without-password
Bước cuối cùng trong quy trình vẫn là triển khai các thay đổi bằng cách sử dụng lệnh sau:
Mã:
reload ssh
Các lệnh trên hoàn tất quy trình cài đặt khóa SSH trên máy chủ Linux.

Chuyển đổi khóa riêng OpenSSH sang định dạng mới​

Hầu hết các khóa OpenSSH cũ hơn đều được lưu trữ ở định dạng PEM. Mặc dù định dạng này tương thích với nhiều ứng dụng cũ hơn, nhưng nó có nhược điểm là mật khẩu của khóa riêng được bảo vệ bằng mật khẩu có thể bị tấn công bằng các cuộc tấn công bằng vũ lực. Chương này giải thích cách chuyển đổi khóa riêng ở định dạng PEM sang khóa riêng ở định dạng OpenSSH mới.
Mã:
ssh-keygen -p -o -f/root/.ssh/id_rsa
Đường dẫn/root/.ssh/id_rsa là đường dẫn đến tệp khóa riêng cũ.

Kết luận​

Các bước trên sẽ giúp bạn cài đặt khóa SSH trên bất kỳ máy chủ riêng ảo nào theo cách hoàn toàn an toàn, bảo mật và không gặp rắc rối.
 
Back
Bên trên