- Tổng đài 24/7: 1800 646 881
- Đăng nhập
- 3
Để bảo vệ dữ liệu người dùng, các khóa xác thực được sử dụng nhiều hơn. Trong đó việc tạo SSH Key có ứng dụng lớn hơn cả đối với vấn đề này. Đặc biệt khi bạn kết nối các máy tính từ xa qua một mạng không an toàn thì nó có vai trò cực lớn. Trong bài viết này, chúng tôi muốn hướng dẫn người dùng các thực hiện tạo khóa thông qua ssh-keygen.
ssh-keygen là gì?
Đối với người dùng thường xuyên sử dụng và tạo SSH Key hẳn là biết tới ssh-keygen. Đây là một công cụ cho phép bạn tạo các khóa xác thực mới. Các cặp khóa được tạo này có thể sử dụng để đăng nhập, xác thực máy chủ hoặc đăng nhập một lần.
SSH Keys và Public Key Authentication
Giao thức SSH sử dụng khóa công khai để xác thực giữa máy chủ và người dùng. Trong đó các khóa xác thực là SSH Key và được tạo bởi chương trình ssh-keygen.
SSH đã giới thiệu và sử dụng Public Key Authentication (khóa công khai) như một giải pháp cho .rhosts. Nó có khả năng cải thiện tính bảo mật, loại bỏ việc máy chủ bị xâm nhập và đánh cắp mật khẩu người dùng. Thông qua cách tránh yêu cầu lưu trữ mật khẩu trong tệp để giúp bạn kết nối an toàn hơn.
Có thể thấy khóa SSH cũng giống như thông tin đăng nhập xác thực mật khẩu. Vậy nên nó cần quản lý như tên đăng nhập hay mật khẩu. Nếu các khóa không còn cần thiết hay không sử dụng thì nên được loại bỏ.
Một cách cực kỳ đơn giản để tạo khóa SSH chính là chạy ssh-keygen không có đối số. Ở trường hợp này bạn cần nêu tên tệp lưu khóa. Ví dụ như sau:
{{EJS0}}
Như bạn thấy, đầu tiên ssh-keygen sẽ hỏi nơi lưu tệp. Thông thường các khóa SSH sẽ được lưu vào tệp .ssh. Tuy nhiên ở các doanh nghiệp thì vị trí lưu sẽ khác nhau. Hơn nữa tên tệp khóa cũng phụ thuộc vào thuật toán. Có thể thấy ở các câu lệnh trên sử dụng thuật toán RSA (id_rsa). Ngoài ra cũng có thể dùng id_dsa, id_ecdsa.
Tiếp đến, quan trọng hơn cả khi tạo SSH Key chính là cụm mật khẩu. Nó được sử dụng để mã hóa khóa nên cho dù khi ai đó lấy tệp khóa riêng cũng không thể dùng được. Một lưu ý nhỏ đó là cụm mật khẩu phải thật sự mạnh.
Ở trên bạn có thể thấy việc sử dụng thuật toán là một phần quan trọng trong khi tạo khóa. SSH hỗ trợ một số thuật toán công khai cho các khóa, cụ thể như:
Khi chọn thuật toán thì sử dụng tham số -t
, và kích thước khóa sẽ dùng -b
. Ví dụ như sau:
{{EJS1}}
Khi tạo SSH Key, công cụ sẽ nhắc bạn tên tệp lưu trữ khóa. Tuy nhiên bạn cũng có thể chỉ định việc này thông qua lệnh -f <tên tệp>
.
Ví dụ như:
{{EJS2}}
Để sử dụng Public key, khóa chung phải được sao chép vào máy chủ và cài đặt trong tệp authorized_keys. Việc này có thể thực hiện thông qua ssh-copy-id như sau:
{{EJS3}}
Khi khóa chung đã được cấu hình trên máy chủ, nó sẽ cho phép bất cứ người dùng nào có khóa riêng tư kết nối. Quá trình đăng nhập, khách hàng chứng minh quyền sở hữu khóa riêng tư bằng việc ký số trao đổi khóa.
ssh-agent là chương trình có thể chứa khóa riêng (Private key) của người dùng. Vì vậy cụm mật khẩu khóa riêng chỉ cần cung cấp một lần. Mỗi lần kết nối tới agent cũng có thể chuyển tiếp khi đăng nhập trên máy chủ. Từ đó cho phép các lệnh SSH trên máy chủ sẽ chạy trên máy tính người dùng.
Ngoài khả năng tạo SSH Key, công cụ này còn có thể tạo các host key. Chúng sẽ được lưu trữ mặc định trên thư mục etc/host.
Host Key cũng chỉ là một SSH key thông thường. Mỗi máy chủ có thể có một khóa máy chủ cho mỗi thuật toán. Các khóa máy chủ hay được lưu trữ trong những tệp sau:
{{EJS4}}
Các khóa máy chủ thường được tạo tự động khi máy chủ SSH cài đặt. Nếu nó bị thay đổi, máy khách sẽ đưa ra cảnh báo về các khóa đã thay đổi đó. Các khóa thay đổi cũng nhận được báo cáo khi cố gắng thực hiện tấn công trung gian. Vậy nên việc thay đổi nên thực hiện thông qua công cụ quản lý khóa SSH hoặc chứng chỉ.
Với những thông tin trên chúng tôi hy vọng bạn có thể thực hiện thành công tạo SSH Key. Việc tạo không có đối số thường khá dễ dàng và có chỉ dẫn cụ thể. Trong đó người dùng nên lựa chọn thuật toán cùng nơi lưu trữ tệp chỉ định theo nhu cầu của mình. Từ đó đảm bảo an toàn cho mỗi kết nối khi mạng không thật sự an toàn.
Nếu còn gặp bất cứ vướng mắc gì, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.
Thuê Cloud VPS Cao Cấp tại BKHOST
Giảm giá cực sâu, chất lượng hàng đầu. Đăng ký ngay hôm nay: