Bảo mật trực tuyến chặt chẽ đã trở thành bắt buộc đối với nhiều người, và khi các tác nhân độc hại ngày càng thông minh, công cụ và bảo vệ phải mạnh hơn để theo kịp. Secure Shell (SSH) là giao thức mã hóa cho phép bạn gửi dữ liệu an toàn bằng cách ghép cặp khóa công khai (public key) với khóa riêng (private key) khớp nhau.
Nhiều tình huống, bao gồm truy cập từ xa vào máy chủ (server) hoặc thêm bảo mật cho nền tảng lưu trữ Git, có thể yêu cầu bạn tự tạo khóa. Thông tin xác thực truy cập đã trở thành phần quan trọng của bảo mật trực tuyến, và macOS cùng ứng dụng Terminal (Terminal) làm cho việc tạo khóa SSH trở nên đơn giản. Hãy xem quy trình.
Cách tạo khóa SSH dùng SSH-Keygen
Với lệnh ssh-keygen, bạn có thể thực hiện tất cả chức năng cần thiết để tạo khóa SSH hoàn chỉnh và sẵn sàng dùng. Trong quá trình tạo, bạn có thể chỉ định thuật toán dùng, độ dài tính bằng bit, và các đặc điểm khác của khóa. Để biết thêm thông tin về các khái niệm này, tham khảo các phần sau của hướng dẫn.
Các bước tạo khóa SSH trong macOS như sau:
Khởi chạy Terminal từ Applications > Utilities (Ứng dụng > Tiện ích) hoặc bằng Spotlight Search. Nhập lệnh ssh-keygen với các tham số mong muốn.
Chúng ta sẽ thảo luận các biến thể sau, nhưng đây là ví dụ lệnh ssh-keygen điển hình:
ssh-keygen -t ecdsa -b 521
Thuật toán mong muốn theo sau lệnh -t, và độ dài khóa yêu cầu đến sau đầu vào -b. Nếu bạn loại bỏ -b, ssh-keygen sẽ dùng số bit mặc định cho loại khóa bạn chọn. Thuật toán mã hóa mạnh với khóa cỡ tốt sẽ hiệu quả nhất giữ an toàn dữ liệu.

Nhấn Enter để bắt đầu quá trình tạo. Nhấn ENTER lần nữa để chấp nhận vị trí tệp mặc định. Bạn có thể thay đổi nếu cần, nhưng chung bạn muốn giữ khóa trong thư mục đề xuất.

Nhập passphrase (cụm từ mật khẩu) khi được nhắc. Mặc dù bạn có thể để trống, chúng tôi luôn khuyên bảo vệ khóa SSH bằng mật khẩu. Ngay cả khi không ai khác nên truy cập thiết bị, một lớp bảo mật thêm luôn được chào đón.
Nhập lại passphrase để hoàn tất quy trình và tạo khóa công khai và khóa riêng.

macOS lưu cả hai khóa trong thư mục ~/.ssh/. Một tệp giữ khóa SSH công khai, và tệp kia chứa phiên bản riêng, mà bạn không bao giờ nên chia sẻ với bất kỳ ai.
Nếu Terminal không phải sở thích của bạn, có một vài SSH client Mac khác tồn tại, để bạn chọn tùy chọn phù hợp nhất.
Sao chép khóa SSH để thêm vào nền tảng Git hosting và nơi khác
Sau khi hoàn tất quá trình tạo, bạn có thể dùng Terminal để sao chép khóa công khai để phân phối. Bạn cũng nên lưu ý tên tệp dùng trong quá trình tạo. Trong ví dụ cung cấp, macOS lưu khóa SSH công khai trong tệp id_ecdsa.pub, vậy đó là vị trí chúng ta cần nhắm đến.
Để sao chép khóa SSH công khai vào clipboard, làm theo các bước:
- Khởi chạy Terminal.
- Nhập lệnh pbcopy < với đường dẫn tệp đúng, ví dụ:
pbcopy < ~/.ssh/id_ecdsa.pub
- Nhấn Enter, và khóa công khai sẽ sao chép vào clipboard.
Từ đây, bạn tự do dán khóa SSH أين nó cần đi. Nhớ, bạn chỉ nên phân phối khóa công khai lưu trong tệp .pub. Khóa riêng chỉ dành cho việc dùng của bạn.
Các loại và kích thước khóa SSH khác nhau
Lệnh ssh-keygen cho phép tạo một vài loại và kích thước khóa dùng thuật toán khác nhau. Trước hết, bạn nên xác nhận biến thể nào nền tảng hosting, dịch vụ, hoặc bên khác khuyên dùng trước khi tạo thông tin xác thực.
Chúng ta sẽ liệt kê các loại khóa SSH phổ biến nhất và giải thích đặc điểm mỗi loại:
- RSA: Thuật toán được hỗ trợ rộng rãi, RSA là lựa chọn mạnh cho nhiều tình huống. Độ dài là sức mạnh, bạn muốn tạo khóa 2048 hoặc 4096 bit, trong đó 2048 là đủ, 4096 là lý tưởng.
- ECDSA: Thuật toán mới hơn, ECDSA cung cấp mức bảo mật tương tự RSA nhưng với khóa ngắn hơn, dịch sang hiệu suất nhanh hơn. Kích thước khóa hỗ trợ: 256, 384, 521 bit.
- Ed25519: Thuật toán mới nổi, Ed25519 cải thiện bảo mật và hiệu suất so với các loại khóa trước. Apple dùng phương pháp xác thực này trong một số trường hợp, bao gồm giao tiếp giữa các thiết bị nhất định. Khóa chỉ 256 bit nhưng vẫn cung cấp bảo mật cao.
Khi tạo khóa SSH, hãy đảm bảo nhập loại thuật toán mong muốn sau lệnh -t.
Các lệnh hữu ích khi tạo khóa SSH trên Mac
Chúng ta đã thảo luận thành phần cơ bản của lệnh ssh-keygen; tuy nhiên, trong một số trường hợp, bạn có thể muốn thực hiện chức năng khác. Ở đây, chúng ta liệt kê một số lệnh liên quan và cách dùng:
- -t: Dùng lệnh này để nhập thuật toán bạn muốn dùng. RSA, ECDSA, Ed25519 là lựa chọn phổ biến và khả thi.
- -b: Chỉ định độ dài khóa bằng cách nhập số bit. Trước khi nhập lệnh -b, luôn kiểm tra yêu cầu của thuật toán đã chọn, vì một số hạn chế áp dụng.
- -p: Bạn có thể thay passphrase của khóa với lệnh -p. Chỉ cần thêm -p với ssh-keygen, Terminal sẽ yêu cầu vị trí tệp. Nhập đường dẫn khóa liên quan và tạo passphrase mới khi được nhắc.
- -f: Dùng lệnh -f để chỉ định ssh-keygen đến vị trí tệp cụ thể.
- -C: Lệnh -C thêm bình luận (comment) vào khóa, phương pháp gán nhãn hữu ích.
Ngoài ra, lệnh ls sẽ liệt kê tất cả khóa SSH lưu trong thư mục mặc định:
ls -al ~/.ssh

Để xóa khóa SSH cục bộ, bạn có thể dùng lệnh rm trong terminal, ví dụ:
rm ~/.ssh/id_ecdsa
và
rm ~/.ssh/id_ecdsa.pub
Cuối cùng, để truy cập danh sách lệnh hoàn chỉnh, đầu vào sau sẽ hiển thị tất cả tùy chọn có sẵn cùng thông tin thêm:
man ssh-keygen

macOS làm cho việc tạo khóa SSH dễ dàng
Tạo khóa SSH đơn giản trong macOS. Terminal và công cụ ssh-keygen có thể thực hiện tất cả chức năng cần thiết để thiết kế, tạo và phân phối thông tin xác thực truy cập, nên không cần phần mềm thêm. Chỉ cần nhập đúng lệnh và ssh-keygen làm phần còn lại.
Thuật toán phổ biến dùng là RSA, ECDSA, Ed25519, mỗi loại có thông số và độ dài khóa dùng được riêng. Trong quá trình tạo, bạn có thể chỉ định chi tiết này và nhập các chỉ dẫn khác dùng đúng lệnh. Sau đó, bạn có thể tiếp tục dùng Terminal để sao chép, sửa đổi, xóa khóa đã lưu.
Dù cho vui hay cho việc, biết cách tự tạo thông tin xác thực truy cập là kỹ năng giá trị để học. Khi cuộc sống chuyển thêm lên trực tuyến, bảo vệ dữ liệu riêng tư quan trọng, và người khôn sẽ dùng mọi công cụ có thể.