ssh -o PreferredAuthent gợi ý: Sự khác biệt giữa mật khẩu của Cameron và bàn phím tương tác với bàn phím là gì?


36

Cả hai PreferredAuthentications=passwordPreferredAuthentications=keyboard-interactivesẽ nhắc nhập mật khẩu, vậy sự khác biệt giữa chúng là gì?

Tôi Google với các từ khóa ssh PreferredAuthent gợi ý sự khác biệt tương tác bàn phím mật khẩu nhưng không tìm thấy câu trả lời.

Sự khác biệt duy nhất tôi nhận thấy là các chuỗi dấu nhắc ( user@host's password:vs. Password:):

$ ssh -o PreferredAuthentications=password,keyboard-interactive my-host
root@my-host's password:
Password:
Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive).

CẬP NHẬT (2018-04-09):

Để dễ dàng tham khảo, phần sau đây là từ cuốn sách SSH: TDG như được đề cập trong câu trả lời của jouell .

"keyboard-interactive"xác thực người dùng chủ yếu nhằm PAMxác thực chỗ ở phía máy chủ. Nó cung cấp một hộp thoại phản hồi nhiều thách thức với người dùng trong đó máy chủ gửi truy vấn văn bản tới người dùng, người dùng nhập vào một phản hồi và quá trình này có thể lặp lại bất kỳ số lần nào. Vì vậy, ví dụ, bạn có thể định cấu hình PAMcho SSH bằng một mô-đun thực hiện xác thực bằng mã thông báo bảo mật RSA hoặc sơ đồ mật khẩu một lần . Mọi người trở nên bối rối bởi vì theo mặc định, "keyboard-interactive"xác thực thường chỉ thực hiện xác thực mật khẩu trong một chu kỳ phản hồi thử thách duy nhất, chỉ nhắc nhở mật khẩu, do đó trông giống hệt như"password"xác thực. Nếu bạn không cố tình sử dụng cả hai cho các mục đích khác nhau, bạn có thể muốn vô hiệu hóa cái này hoặc cái kia để tránh sự nhầm lẫn của người dùng cuối.


1
Xem RFC 4252 cho mật khẩu auth và RFC 4256 để tương tác với bàn phím .
pynexj

Câu trả lời:


37

Giao thức SSH có nhiều phương thức xác thực. Các mật khẩubàn phím tương tác là hai trong số họ.

Các xác thực mật khẩu là một yêu cầu đơn giản cho một mật khẩu duy nhất. Không có lời nhắc cụ thể nào được gửi bởi máy chủ. Vì vậy, đó là khách hàng sẽ chọn cách ghi nhãn prompt (Các "user @ mật khẩu chủ của" nhắc là từ OpenSSH khách hàng , như ssh, sftp, vv).

Các chứng thực bàn phím tương tác là một yêu cầu phức tạp hơn cho số lượng tùy ý các mẩu thông tin. Đối với mỗi phần thông tin, máy chủ sẽ gửi nhãn của dấu nhắc. Ngoài ra, nó cho phép máy chủ cung cấp mô tả dài dòng về "hình thức" tổng thể. Máy chủ cũng có thể chỉ định, đầu vào nào là bí mật (cần phải bị xáo trộn khi người dùng nhập chúng) và không.

Mặc dù trong hầu hết các trường hợp, xác thực tương tác bàn phím được sử dụng để yêu cầu một dấu nhắc mật khẩu "bí mật" duy nhất, do đó hầu như không có bất kỳ sự khác biệt nào đối với xác thực mật khẩu .

Đó là sự khác biệt từ quan điểm giao thức.


Từ góc độ triển khai, với máy chủ OpenSSH, xác thực tương tác bàn phím có thể được nối với xác thực hai yếu tố (hoặc đa yếu tố), ví dụ được cung cấp bởi cơ chế PAM chung hoặc Kerberos .

Từ quan điểm của khách hàng, một sự khác biệt khác là nội địa hóa. Với xác thực mật khẩu , khách hàng có thể bản địa hóa nhãn "Mật khẩu" , vì họ biết rằng máy chủ đang yêu cầu mật khẩu. Với xác thực tương tác bàn phím , ngay cả khi máy chủ chỉ yêu cầu một mật khẩu duy nhất, máy khách không thể bản địa hóa lời nhắc (trừ khi sử dụng AI), vì đó là lời nhắc chung.


2

Bạn đã biết "mật khẩu" là gì. Từ mức rất cao (không phải công cụ giao thức cấp gạch), hãy nghĩ về 'tương tác bàn phím' là phương pháp mà bạn sử dụng 2FA bằng Radius và / hoặc SecurID, v.v. Nó cung cấp cho các hộp thoại thử thách và phản hồi: ssh.com có một mô tả ngắn về nó. Nó đi thêm một bước nữa để làm nổi bật tương tác bàn phím là chiếc ô mà mật khẩu rơi vào. Trân trọng với các tác giả, nó hơi khó hiểu.

Cũng xem định nghĩa Snail Book . Chúng tôi sử dụng điều này thường xuyên cho các hộp được bảo vệ RSA của chúng tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.