6.5. スマートカード認証で SSH アクセスの設定
SSH 接続には認証が必要です。パスワードまたは証明書を使用できます。このセクションでは、IC カードに格納された証明書を使用して認証を有効にするために必要な設定について説明します。
authselect
を使用したスマートカードの設定の詳細は Configuring smart cards using authselect を参照してください。
前提条件
- スマートカードに、証明書と秘密鍵が含まれている。
- カードがリーダーに挿入され、コンピューターに接続されている。
- SSSD がインストールされ、設定されている。
- ユーザー名が、証明書の SUBJECT の CN (Common Name) または UID (User ID) と一致する。
pcscd
サービスがローカルマシンで実行している。詳細は スマートカードを管理および使用するツールのインストール を参照してください。
手順
スマートカード認証を使用するユーザーのホームディレクトリーで、SSH キー用の新しいディレクトリーを作成します。
# mkdir /home/example.user/.ssh
opensc
ライブラリーでssh-keygen -D
コマンドを実行して、スマートカードの秘密鍵とペアの既存の公開鍵を取得し、そのユーザーの SSH キーディレクトリーのauthorized_keys
一覧に追加し、スマートカード認証を使用した SSH アクセスを有効にします。# ssh-keygen -D /usr/lib64/pkcs11/opensc-pkcs11.so >> ~example.user/.ssh/authorized_keys
SSH では、
/.ssh
ディレクトリーおよびauthorized_keys
ファイルのアクセス権が必要です。アクセス権を設定または変更するには、以下を入力します。# chown -R example.user:example.user ~example.user/.ssh/ # chmod 700 ~example.user/.ssh/ # chmod 600 ~example.user/.ssh/authorized_keys
必要に応じて、キーを表示します。
# cat ~example.user/.ssh/authorized_keys
端末にキーが表示されます。
/etc/sssd/sssd.conf
ファイルでスマートカード認証が有効になっていることを確認します。[pam]
セクションで、pam 証明書認証モジュールであるpam_cert_auth = True
を有効にします。sssd.conf
ファイルがまだ作成されていない場合は、以下のスクリプトをコマンドラインにコピーして、最小限の機能設定を作成できます。# cat > /etc/sssd/sssd.conf <<EOF [sssd] services = nss, pam domains = shadowutils [nss] [pam] pam_cert_auth = True [domain/shadowutils] id_provider = files EOF
SSH キーを使用するには、
authselect
コマンドで認証を設定します。# authselect select sssd with-smartcard --force
これで、次のコマンドを実行して SSH アクセスを確認できます。
# ssh -I /usr/lib64/opensc-pkcs11.so -l example.user localhost hostname
設定に成功すると、スマートカードの PIN を入力するように求められます。
設定がローカルで機能するようになりました。これで、公開鍵をコピーして、SSH を使用するすべてのサーバーにある authorized_keys
ファイルに配布できます。