cloudpack磯辺です。

GSSAPIを使って、認証情報をユーザが入力せずにログインできるようになったのだが、天から声が聞こえてきた。

サーバにログインするためには、必ずどこかでワンタイムパスワードを必須にせよ。

むむ。そうすると、Macにログインするときに、ワンタイムパスワードを使うことはできないので、サーバにログインするタイミングで必須にしないといけない。

ということで、sshdの設定を下記のように変更した。

/etc/pam.d/sshd

以前は、auth substackとして、password-authを入れていたのだが、それを削除する。

#%PAM-1.0
auth     required pam_sepermit.so
auth       substack     google-auth
auth       include      postlogin
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin

/etc/ssh/sshd_config

前回は、gssapi-with-micまたはkeyboard-interactiveとしていたが、gssapi-with-micおよびkeyboard-interactiveと変更する。

AuthenticationMethods gssapi-with-mic,keyboard-interactive

この設定でログインしてみよう。

$ ssh -v -o GSSAPIAuthentication=yes isobe@server01.example.local
Authenticated with partial success.
Verification code:
Last login: Wed Oct 1 22:10:08 2014 from test01.example.local
[isobe@server01 ~]$

最初に”Authenticated with partial success.”と出力されているのが、GSSAPIで認証の一部が成功していることを表している。その後、”Verification code:”の箇所で、ワンタイムパスワードを入力して成功すると、ログインできる。

元記事はこちらです。
[Linux] GSSAPIとGoogle Authenticatorを連動させる