Xác thực

DR-Terminal hỗ trợ ba phương thức xác thực: mật khẩu, khóa riêng, và khóa bảo mật FIDO2 (YubiKey).

Mật khẩu

Cách đơn giản nhất. Mật khẩu nhập vào một kết nối đã lưu sẽ nằm trong kho lưu trữ an toàn của nền tảng — không bao giờ trong JSON cấu hình. Nếu trường mật khẩu để trống, ứng dụng sẽ hỏi mỗi lần bạn kết nối.

Khóa công khai → dự phòng mật khẩu: khi máy chủ từ chối một khóa công khai (ví dụ nó không có trong authorized_keys), DR-Terminal tự động hỏi mật khẩu cho cùng người dùng đó thay vì ngắt kết nối.

Khóa riêng

Các khóa ở định dạng OpenSSH, PKCS#1, PKCS#8, ssh.com hoặc PuTTY PPK (v2/v3) đều được chấp nhận — định dạng được phát hiện tự động, nên một khóa .ppk hoạt động mà không cần chuyển đổi trước. Bạn có thể:

Nếu khóa được mã hóa bằng một passphrase, DR-Terminal sẽ hỏi nó ở lần đầu tiên khóa được dùng rồi giữ nó chỉ trong bộ nhớ — giống ssh-agent, mở khóa một lần cho mỗi lần chạy ứng dụng; đóng ứng dụng sẽ khóa lại mọi khóa. Các khóa đã mã hóa được nhập vào vẫn nằm trong kho lưu trữ an toàn ở dạng mã hóa gốc của chúng. Chúng tôi hỗ trợ nhiều thuật toán — RSA, ECDSA (P-256, P-384, P-521), Ed25519, Ed25519-SK, ECDSA-SK (FIDO).

Trình tạo khóa

Settings → Security có một trình hướng dẫn Generate SSH key. Chọn loại (ví dụ ed25519), đặt một passphrase (tùy chọn — nó bảo vệ khóa ngay cả bên trong kho lưu trữ an toàn), và khóa được lưu cục bộ. Chú thích khóa mặc định là ${user}@${host}@DR-Terminal — tiện để nhận diện khóa trên máy chủ. Khóa công khai có thể được sao chép vào clipboard cho ~/.ssh/authorized_keys trên máy chủ.

Các khóa trong danh sách có thể được đổi tên tại chỗ; nếu tên bạn chọn trùng với một tên đã tồn tại, ứng dụng tự động thêm (2).

Trình chuyển đổi khóa

Settings → Security → SSH keys → Convert tuần tự hóa lại một khóa riêng giữa mọi định dạng phổ biến — chọn một nguồn (một khóa đã lưu, một tệp, hoặc văn bản dán vào) và một định dạng đích, sau đó sao chép, chia sẻ hoặc lưu kết quả.

Các định dạng, cả hai chiều:

Định dạngĐọcGhi
OpenSSH (BEGIN OPENSSH PRIVATE KEY)
PKCS#8 (BEGIN PRIVATE KEY)
PKCS#1 (BEGIN RSA PRIVATE KEY, chỉ RSA)
PuTTY PPK — v2 và v3

Đầu vào có thể là PEM (văn bản), PuTTY PPK, hoặc DER nhị phân thô — định dạng được phát hiện tự động. Các loại khóa: RSA, Ed25519 và ECDSA (P-256/384/521).

PKCS#1 chỉ mô tả các khóa RSA, nên đích đó chỉ được cung cấp khi nguồn là một khóa RSA.

Chuyển một kết nối mật khẩu sang dùng khóa

Bạn không phải sửa authorized_keys bằng tay. Với một kết nối mật khẩu đã lưu, DR-Terminal cung cấp một quy trình nâng cấp có hướng dẫn ở hai nơi:

Cả hai đều chạy cùng một luồng: chọn một khóa đã lưu hoặc tạo khóa mới, DR-Terminal triển khai khóa công khai lên máy chủ qua chính lần đăng nhập bằng mật khẩu hiện có, kiểm tra rằng xác thực bằng khóa thực sự hoạt động, và chỉ khi đó mới chuyển kết nối đã lưu sang xác thực bằng khóa. Nếu bài kiểm tra thất bại, kết nối được giữ nguyên.

Khóa bảo mật (FIDO2 / YubiKey)

DR-Terminal xử lý các khóa ed25519-skecdsa-sk — và bạn có thể tạo chúng từ bên trong ứng dụng. Không cần ssh-keygen bên ngoài.

Tạo một khóa được YubiKey hỗ trợ trong DR-Terminal

  1. Settings → Security → SSH keys → Generate SSH key.
  2. Bật công tắc Security key. Chọn thuật toán — Ed25519-SK (khuyến nghị) hoặc ECDSA-SK.
  3. Chạm YubiKey của bạn khi được nhắc. Ứng dụng yêu cầu token tạo một thông tin xác thực mới và ký khóa công khai.
  4. Khóa được lưu trong trình quản lý khóa của DR-Terminal. Sao chép khóa công khai và dán nó vào ~/.ssh/authorized_keys trên máy chủ đích.

Windows Hello: trên Windows, lời nhắc PIN FIDO2 là hộp thoại Windows Hello gốc (PIN / vân tay / khuôn mặt), không phải một hộp thoại trong ứng dụng.

Các khóa Resident (lưu ngay trên YubiKey) loại bỏ nhu cầu mang theo tệp khóa — toàn bộ bí mật nằm trên token. Các khóa được tạo trong DR-Terminal là non-resident: handle của thông tin xác thực được giữ trong trình quản lý khóa và cần dùng cùng với token.

Sử dụng một khóa SK hiện có

Nếu bạn đã có một id_ed25519_sk / id_ecdsa_sk được tạo ở nơi khác (ví dụ qua ssh-keygen -t ed25519-sk), hãy nhập nó qua cùng trình quản lý khóa — DR-Terminal xử lý các khóa SK nhập vào và được tạo theo cùng một cách.

Tại thời điểm kết nối

DR-Terminal yêu cầu một lần chạm vào khóa của bạn. Đèn báo nhấp nháy — chạm vào nó. iOS hỗ trợ NFC và USB-C (YubiKey 5Ci trở lên). Android — NFC + USB (OTG). Desktop dùng các API FIDO2 gốc (Windows Hello, macOS, Linux qua libfido2).

Previous
Kết nối SSH
Next
Terminal