HOME / コンピュータTips / UNIXツール / ssh / RSA鍵認証のみにし、Password認証を無効化する
Date: 2016/04/13 | | Tags: ssh, RSA, password
意外に覚えきれなくて、いつも忘れるので、メモついでに残しておきます。
PasswordAuthentication no KbdInteractiveAuthentication no ChallengeResponseAuthentication no
古いOpenSSHや、SunSSHの場合は、これも無効にします。
PAMAuthenticationViaKBDInt no
ユーザ目線でのザックリとした説明を。OpenSSHではなく別のSSH実装も含めて考えているので、OpenSSHのソースをじっくり読んだわけではないため、間違ってたらすみません。
まず、Password認証を無効にする場合、PasswordAuthentication noだけで良い気もします。しかし、asswordAuthenticationというのは、「ユーザIDとPasswordを同時に送りつける認証」のことを意味してるので、それだけでは足りません。
ChallengeResponseAuthenticationが有効になっていると、クライアントは「先にID」を送り、状況に応じてサーバからパスワードを要求されます。ここで、PAMAuthenticationViaKBDIntが有効なシステムであればPAM認証キーボードから、KbdInteractiveAuthenticationが有効なシステムであればキーボードからの認証を許可、さらにUsePAMが有効であったりAuthenticationMethodsでPAMが有効であれば、事実上キーボードからパスワード入力を求められてしまうわけ。
ということで、この辺一通り設定しておけば、良いよと言う話だけれども、sshd_configにコメントアウトされてないものもあるので、いつも忘れるからメモなのです。
ついでなのでテスト方法も書いて置きます。
sshd_configに下記の1行を追加します。
GSSAPIAuthentication no
GSSAPIAuthenticationってのは、OpenSSHのマニュアルをみると、
Specifies whether user authentication based on GSSAPI is allowed. The default is “no”.
Solarisだと、
GSSAPIAuthentication Specifies whether user authentication based on GSSAPI is allowed. The default on Solaris is ``yes''. Note that this option applies to protocol version 2 only.
とかいているので、Solarisの場合は気になるなら無効にしてもいいでしょう。
GSSAPIを使った認証は、Generic Security Service Application Programming Interfaceのことで、よくKerberosと関連して利用される認証するAPI。シングルサインオン周りの話によく出てきますね。
別に悪いものではないのだけれども、使ってないから無効にしたいのであれば、それはそれで。