저는 몇 년 동안 libpam-google-authenticator를 사용해 왔습니다. 나는 항상 pam에서 비밀번호 + TOTP 토큰을 비밀번호로 요구하도록 설정했습니다. 비밀번호를 입력한 다음 "onlykey" 버튼을 누르고 TOTP 토큰을 입력한 후 Enter를 누릅니다. 고통스럽지 않고 안전합니다. SSH는 분명히 RSA를 사용하지만 다른 모든 로그인(X, 물리적 터미널, sudo 등)에는 비밀번호 + 토큰이 필요합니다. 이는 이전 설치에서 완벽하게 작동했습니다. 그러나 이제는 이상하게도 실패합니다. github에서 소스 코드를 살펴본 후, 시간 오프셋을 조정하고 재생을 중지하려고 하는 코드의 여러 인스턴스에서 호스트가 null이 되는 것과 관련이 있을 수 있다는 생각이 들었습니다.
일단 설정되면 모든 것이 잘 작동하는 것처럼 보였지만 시간이 지남에 따라 TOTP 토큰이 매번 실패했습니다. 나는 다음을 수행했습니다.
- 서버 날짜/시간이 pool.ntp.org와 일치하는지 실시간으로 확인하세요.
- oathtool을 사용하여 TOTP를 수동으로 계산하고 고유 키 출력을 비교합니다(관심 있는 경우 oathtool -b --totp "SECRET").
모든 경우에서 시간이 정확하고 TOTP가 정확하다는 것을 알 수 있지만 Google 인증자는 그것이 정확하지 않다고 말합니다.
다른 사람이 이것을 본 적이 있는지 알아보기 위해 여기에 이 질문을 제기하고 싶었습니다. 이제 다음 조치는 재부팅으로 인해 변경된 사항이 있는지 확인하는 것입니다. 작동한다면 어떤 서비스를 다시 시작해야 하는지 확인해야 합니다.
편집하다:
다시 시작하는 것은 고통스럽고 게으르기 때문에 systemctl을 실행하여 다음을 발견했습니다.
polkit.service loaded active running Authorization Manager
서비스를 다시 시작했는데 이제 다시 작동합니다. 그래서 우리에게는 해결책이 있습니다. 답이 있나요?