Có, tôi có một thiết lập nơi tôi có thể ssh
đến máy chủ của mình bằng xác thực khóa chung, với dự phòng xác thực hai yếu tố với mật khẩu Google Authenticator + khi khóa riêng của tôi không khả dụng. Đây là các bước bạn có thể sử dụng để thiết lập nó.
Cài đặt Google Authenticator
Máy chủ của tôi đang chạy Ubuntu Bionic Beaver (18.04.1). Bạn có thể cài đặt Google Authenticator bằng cách sử dụng apt
:
$ sudo apt install libpam-google-authenticator
Cấu hình sshd
Mở /etc/pam.d/sshd
và thêm dòng sau ở trên cùng:
auth optional pam_google_authenticator.so
Mở /etc/ssh/sshd_config
và thay đổi một dòng. Dòng hiện tại là
ChallengeResponseAuthentication no
và bạn nên đổi nó thành
ChallengeResponseAuthentication yes
Định cấu hình Google Authenticator cho Tài khoản của bạn
Bước tiếp theo là bật Google Authenticator cho tài khoản của bạn. Bạn làm điều này bằng cách đơn giản là chạy:
$ google-authenticator
Hãy chắc chắn rằng bạn chạy nó với tư cách là người dùng sẽ tạo kết nối ssh chứ không phải root. Ghi lại mã khóa bí mật mới và mã số khẩn cấp của bạn. Trình hướng dẫn sẽ hỏi bạn một số câu hỏi để định cấu hình cài đặt bảo mật cho tài khoản của bạn.
Định cấu hình ứng dụng di động của bạn
Tôi sử dụng ứng dụng Google Authenticator cho iPhone. Ứng dụng này có nút [+] cho phép tôi thêm Mã thông báo dựa trên thời gian mới bằng khóa bí mật tôi nhận được từ google-authenticator
lệnh trên máy chủ của mình. Nó là tầm thường để thiết lập. Tôi không thể giúp bạn với các ứng dụng trên bất kỳ nền tảng nào khác, nhưng tôi tưởng tượng quá trình này cũng đơn giản không kém.
Kéo kích hoạt
Điều cuối cùng bạn cần làm là khởi động lại sshd
.
$ sudo /etc/init.d/ssh restart
Tại thời điểm này, khi bạn cố gắng kết nối với máy chủ khi khóa riêng của bạn khả dụng, xác thực chỉ hoạt động. Khi khóa riêng của bạn không có sẵn, bạn sẽ nhận được lời nhắc về mã xác minh, sau đó là mật khẩu tài khoản của bạn.
Bingo, xác thực hai yếu tố.