SSH là giao thức được sử dụng phổ biến để truy cập và quản lý máy chủ từ xa, trong đó bảo vệ khóa xác thực đóng vai trò vô cùng quan trọng. Với Trezor, người dùng có thể sử dụng ví lạnh để xác thực khóa SSH, giúp khóa riêng tư luôn được bảo vệ trong thiết bị thay vì lưu trực tiếp trên máy tính. SSH với Trezor góp phần giảm thiểu nguy cơ đánh cắp khóa, tăng cường bảo mật cho hệ thống và phù hợp với lập trình viên, quản trị viên máy chủ hoặc những ai thường xuyên làm việc với môi trường SSH.
OpenSSH là gì?
OpenSSH là bộ công cụ mã nguồn mở triển khai giao thức SSH (Secure Shell), cho phép thiết lập kết nối an toàn giữa máy tính cá nhân và máy chủ từ xa. Thông qua cơ chế mã hóa mạnh mẽ, OpenSSH bảo vệ toàn bộ dữ liệu truyền tải khỏi các nguy cơ như nghe lén, đánh cắp thông tin hay chiếm quyền kết nối. Đây là giải pháp được các quản trị viên hệ thống và lập trình viên sử dụng rộng rãi để đăng nhập từ xa, thực thi lệnh, quản lý máy chủ, truyền tệp qua mạng một cách an toàn.
Không chỉ hỗ trợ kết nối SSH, OpenSSH còn cung cấp nhiều tính năng bảo mật nâng cao như xác thực bằng khóa công khai, tạo đường hầm (SSH tunneling), chuyển tiếp cổng (port forwarding) và nhiều tùy chọn cấu hình linh hoạt. Nhờ đó, OpenSSH trở thành tiêu chuẩn phổ biến trong việc quản trị hệ thống trên các nền tảng Linux, macOS và nhiều hệ điều hành khác.
Khi kết hợp với Trezor SSH Agent, quá trình xác thực SSH được nâng lên cấp độ bảo mật mới. Thay vì lưu khóa riêng tư trên máy tính, khóa sẽ được bảo vệ bên trong ví lạnh Trezor và chỉ được sử dụng sau khi người dùng xác nhận trực tiếp trên thiết bị. Điều này giúp giảm đáng kể nguy cơ khóa SSH bị đánh cắp bởi phần mềm độc hại hoặc các cuộc tấn công vào máy tính.
Từ phiên bản firmware 1.3.4, Trezor đã bổ sung hỗ trợ NIST P-256 (NIST256P1) – một đường cong elliptic do Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST) tiêu chuẩn hóa. Nhờ đó, người dùng có thể sử dụng Trezor để xác thực khi đăng nhập vào các máy chủ hỗ trợ OpenSSH 5.7 trở lên, không ảnh hưởng đến lưu trữ hay quản lý tài sản tiền mã hóa trên thiết bị. Điều này biến Trezor không chỉ là ví lạnh bảo vệ crypto mà còn là công cụ xác thực phần cứng đáng tin cậy cho các tác vụ quản trị hệ thống.
Cách sử dụng OpenSSH với Trezor thông qua FIDO2
Trezor hỗ trợ chuẩn FIDO2, cho phép nhà đầu tư sử dụng ví lạnh như khóa bảo mật phần cứng để xác thực SSH. Khi đó, khóa riêng tư không được lưu trên máy tính, được bảo vệ trực tiếp trong thiết bị Trezor, giúp tăng cường bảo mật khi truy cập máy chủ từ xa.
Điều kiện cần chuẩn bị
Trước khi cấu hình, hãy đảm bảo hệ thống đáp ứng các yêu cầu sau:
Máy khách (Client):
Cài đặt libfido2 phiên bản 1.3.0 trở lên.
Cài đặt OpenSSH phiên bản 8.2 trở lên.
OpenSSH phải được biên dịch với tùy chọn:
--with-security-key-builtin
Máy chủ (Server):
Cài đặt OpenSSH 8.2 hoặc phiên bản mới hơn.
Một số bản phân phối Linux như Fedora, NixOS và Debian đã hoặc đang tích hợp đầy đủ tính năng này trong các phiên bản mới.
Tạo cặp khóa SSH bằng Trezor
Sau khi hoàn tất cài đặt, bạn có thể tạo cặp khóa SSH được bảo vệ bởi Trezor bằng lệnh:
ssh-keygen -t ecdsa-sk
Trong đó:
- ecdsa là thuật toán chữ ký số sử dụng đường cong elliptic (Elliptic Curve Digital Signature Algorithm).
- sk là viết tắt của Security Key, tức khóa bảo mật phần cứng.
Nếu sử dụng Trezor Model T, thiết bị sẽ hiển thị yêu cầu đăng ký khóa FIDO2. Chỉ cần xác nhận trên màn hình Trezor để tiếp tục quá trình tạo khóa.
Tạo khóa riêng cho từng máy chủ
Nếu muốn sử dụng khóa xác thực riêng cho từng máy chủ nhằm tăng tính bảo mật, bạn có thể chỉ định
Application ID bằng tham số -O:
ssh-keygen -t ecdsa-sk -O application=ssh:user@example.com
Sau khi xác nhận trên thiết bị Trezor, hệ thống sẽ tạo hai tệp:
~/.ssh/id_ecdsa_sk
và
~/.ssh/id_ecdsa_sk.pub
Cấu hình khóa công khai trên máy chủ
Mở tệp id_ecdsa_sk.pub, sau đó sao chép toàn bộ nội dung vào tệp:
~/.ssh/authorized_keys
Trên máy chủ từ xa. Đây là bước cấu hình tương tự như khi sử dụng khóa SSH truyền thống.
Kể từ lần đăng nhập tiếp theo, OpenSSH sẽ tự động nhận diện khóa FIDO2 và yêu cầu bạn xác nhận trực tiếp trên thiết bị Trezor trước khi cấp quyền truy cập vào máy chủ.
Tệp id_ecdsa_sk có chứa khóa riêng không?
Khác với phương pháp tạo khóa SSH thông thường, tệp:
~/.ssh/id_ecdsa_sk
Không lưu trữ khóa riêng tư. Thay vào đó, tệp này chỉ chứa thông tin xác thực FIDO2 cần thiết để Trezor truy xuất khóa riêng được lưu an toàn bên trong thiết bị.
Mặc dù không chứa khóa bí mật, bạn vẫn cần giữ tệp này trên máy tính đang sử dụng. Khi đăng nhập SSH, OpenSSH sẽ sử dụng thông tin trong tệp để giao tiếp với Trezor và yêu cầu thiết bị ký xác thực. Nếu tệp này bị xóa, bạn sẽ không thể sử dụng cặp khóa đó trên máy khách hiện tại cho đến khi tạo lại khóa mới.
Hướng dẫn thiết lập Trezor SSH Agent trên Linux
Trezor SSH Agent cho phép sử dụng ví lạnh Trezor để xác thực SSH thay vì lưu khóa riêng tư trên máy tính. Giải pháp này giúp tăng cường bảo mật khi truy cập máy chủ từ xa và hạn chế rủi ro khóa SSH bị đánh cắp. Dưới đây là hướng dẫn cài đặt trên các bản phân phối Linux phổ biến.
Cài đặt trên Linux
Bước 1: Cài đặt các gói phụ thuộc
Trước tiên, hãy cập nhật hệ thống và cài đặt các thư viện cần thiết:
sudo apt update && sudo apt install python3-pip libusb-1.0-0-dev libudev-dev pinentry-curses
Bước 2: Cài đặt Trezor SSH Agent
Sử dụng pip3 để cài đặt công cụ:
pip3 install trezor_agent
Bước 3: Cài đặt quy tắc Udev
Tiếp theo, cài đặt Udev Rules để hệ điều hành có thể nhận diện và giao tiếp với thiết bị Trezor.
Bước 4: Thêm thư mục thực thi vào PATH
Nếu thư mục ~/.local/bin vừa được tạo, hãy thêm nó vào biến môi trường:
export PATH=$PATH:~/.local/bin/
Bạn cũng có thể đăng xuất và đăng nhập lại để thay đổi có hiệu lực.
Bước 5: Tạo khóa SSH
Tạo khóa công khai bằng Trezor SSH Agent:
trezor-agent root@example.com
Thiết bị Trezor sẽ yêu cầu nhập PIN và passphrase (nếu đã thiết lập), tương tự như khi sử dụng Trezor Suite.
Bước 6: Thêm khóa vào máy chủ
Đăng nhập vào máy chủ bằng phương thức hiện tại, sau đó sao chép dòng khóa công khai (bắt đầu bằng ecdsa) vừa tạo vào tệp:
~/.ssh/authorized_keys
Bước 7: Đăng nhập bằng Trezor
Sau khi hoàn tất cấu hình, bạn có thể đăng nhập bằng lệnh:
trezor-agent -c root@example.com
Từ thời điểm này, mỗi lần đăng nhập SSH đều cần xác nhận trực tiếp trên thiết bị Trezor.
Lưu ý: Cặp khóa được tạo sẽ phụ thuộc vào tham số root@example.com, vì vậy mỗi máy chủ hoặc tài khoản người dùng sẽ có khóa riêng biệt, giúp tăng cường tính bảo mật.
Sử dụng với SCP và Git
Ngoài SSH, Trezor SSH Agent còn hỗ trợ các công cụ sử dụng giao thức SSH như SCP và Git.
Ví dụ sao chép tệp bằng SCP:
trezor-agent root@example.com -- scp root@example.com:/tmp/remotefile ~/tmp/localfile
Hoặc xác thực khi thực hiện lệnh git push:
trezor-agent root@example.com git push
Nhờ đó, mọi thao tác xác thực đều được thực hiện thông qua ví lạnh Trezor thay vì khóa riêng được lưu trên máy tính.
Cài đặt Trezor SSH Agent trên NixOS
Nếu sử dụng NixOS, quy trình cài đặt có một số điểm khác biệt.
Bước 1: Thêm các gói cần thiết
Mở tệp /etc/nixos/configuration.nix và thêm:
environment.systemPackages = with pkgs; [ gnupg pinentry (python3.withPackages(ps: with ps; [ trezor_agent wheel])) ];
Bước 2: Cài đặt Udev Rules
Thiết lập các quy tắc Udev để hệ điều hành nhận diện thiết bị Trezor.
Bước 3: Áp dụng cấu hình
Biên dịch lại hệ thống để các thay đổi có hiệu lực:
sudo nixos-rebuild switch
Bước 4: Tạo khóa SSH
Khởi tạo khóa bằng lệnh:
trezor-agent root@example.com
Sau đó, xác nhận trên thiết bị Trezor.
Bước 5: Thêm khóa vào máy chủ
Sao chép khóa công khai được tạo vào tệp:
~/.ssh/authorized_keys
Trên máy chủ từ xa.
Bước 6: Đăng nhập bằng Trezor
Khi hoàn tất cấu hình, sử dụng lệnh sau để kết nối:
trezor-agent -c root@example.com
Mỗi lần đăng nhập, Trezor sẽ yêu cầu bạn xác nhận trên thiết bị trước khi cho phép truy cập, giúp bảo vệ khóa SSH khỏi nguy cơ bị đánh cắp hoặc lạm dụng.
Kết luận
SSH với Trezor là giải pháp giúp tăng cường bảo mật khi truy cập máy chủ bằng cách lưu trữ khóa xác thực trong ví lạnh thay vì trên máy tính. Không chỉ bảo vệ tài sản số, Trezor còn mang đến lớp xác thực phần cứng đáng tin cậy cho quản trị viên hệ thống, lập trình viên và những người thường xuyên làm việc với SSH. Nếu đang tìm mua ví lạnh Trezor chính hãng, hãy lựa chọn Storevilanh. Chúng tôi chuyên cung cấp sản phẩm nguyên seal, chính hãng, với chính sách bảo hành rõ ràng cùng đội ngũ hỗ trợ tận tình, giúp nhà đầu tư yên tâm bảo vệ cả tiền mã hóa cũng như các tác vụ xác thực bảo mật.