Mặc dù phương pháp này không kiểm tra 1 phương thức xác thực, nhưng nó giải quyết được vấn đề đăng nhập từ các máy không an toàn / không đáng tin cậy bằng OTP.
Để định cấu hình trình nền SSH để nghe trên nhiều cổng (một cho xác thực khóa chung và một cho xác thực OTP), chỉ cần thêm một số cổng khác vào tệp sshd_config, nghĩa là
Port 22 # For key-based auth
Port 60000 # For OTP-based auth
2-FA dựa trên công nghệ xác thực 2 bước của Google. Để cài đặt thư viện và chương trình:
$ sudo apt-get install libpam-google-authenticator
Trong khi đó, hãy cài đặt ứng dụng Google Authenticator trên điện thoại thông minh của bạn. Sau khi cài đặt, từ thiết bị đầu cuối, khởi động chương trình:
$ google-authenticator
Điều này sẽ cung cấp cho bạn một mã vạch, một bí mật và một loạt các mã số cào. GIỮ THỨ AN TOÀN !!! Nếu bạn không có quyền truy cập vào điện thoại của mình hoặc cần truy cập khẩn cấp, các mã này sẽ là cách duy nhất của bạn. Đừng đánh giá thấp tầm quan trọng của cơ chế sao lưu này. Nó có thể làm phiền bạn về lâu dài. Định cấu hình mô-đun PAM để sử dụng Google Authenticator:
$ sudo nano /etc/pam.d/sshd
Để vô hiệu hóa đăng nhập mật khẩu sau đó, hãy đặt # ở phía trước dòng @include common-auth. Ngoài ra, ở dưới cùng của tệp, thêm:
auth required pam_google_authenticator.so
Để bật xác thực OTP:
$ sudo nano /etc/ssh/sshd_config
Tìm dòng có cụm từ: ChallengeResponseAuthentication
và thay đổi nó từ ban nọ không thành thành có.
Đặt PermitRootLogin no
và PasswordAuthentication no
.
Ở phần cuối của tệp, hãy sử dụng tham số phù hợp với mối quan hệ của người dùng để xác định (các) cơ chế xác thực nào phải được sử dụng để truy cập vào máy từ cổng đó, ví dụ:
Match LocalPort 22
PasswordAuthentication no
AuthenticationMethods publickey
PubKeyAuthentication yes
Match LocalPort 60000
AuthenticationMethods keyboard-interactive:pam
Tham số bàn phím tương tác với bàn phím: pam Bắt buộc trình nền SSH đi đến trình nền mô-đun PAM (được định cấu hình bên dưới /etc/pam.d/sshd
) và xác thực như được chỉ định ở đó (do đó cũng cần phải tắt mật khẩu đăng nhập từ mô-đun PAM, bằng cách băm common-auth
dòng) . Đừng quên khởi động lại trình nền SSH của bạn để các thay đổi có hiệu lực:
$ sudo /etc/init.d/sshd restart
Sau đó, khi ở một máy không đáng tin cậy, chỉ cần SSH vào cổng 60000 (hoặc bất cứ thứ gì bạn đặt) và sử dụng OTP để xác thực.