Help us understand the problem. What is going on with this article?

SSHのCA認証

More than 1 year has passed since last update.

参考URL

OpenSSHの認証に証明書を使う方法
https://support.conoha.jp/v/openssh/

SSH CA認証まとめ
https://kontany.net/blog/?p=211

OpenSSH の 証明書認証
https://qiita.com/Hexa/items/79897f7df5ad59bb5ca1

SSH-KEYGEN (1)
https://euske.github.io/openssh-jman/ssh-keygen.html

できること

  • 鍵の有効期間の設定
  • 接続元IPの制限
  • 発行した証明書の失効

手順

CA用のキーペア作成

$ ssh-keygen -f ca.key

証明書を発行

  • CAの秘密鍵
  • クライアントの公開鍵

が必要

$ ssh-keygen -s ./ca.key -I "ca test" -n "test" -z 1 -V +1d -O source-address=123.123.123.123 ./client/client.key.pub
  • -V
    • 有効期限
  • -z
    • 指定したシリアルNoは証明書を失効させるときに使用する。デフォルトの0だと失効できない。
  • -O
    • オプション。source-address=123.123.123.123でIPを制限できる。他にも色々あるようだ。

証明書の内容確認

$ ssh-keygen -L -f ./client/client.key-cert.pub

client/client.key-cert.pub:
        Type: ssh-rsa-cert-v01@openssh.com user certificate
        Public key: RSA-CERT SHA256:Sr7h0w3I+FP7QghNRETs8W5TdygzZ57bH4sgSQkqsDQ
        Signing CA: RSA SHA256:JCpHzCX91c53T+iddH5tQFa8ihgVSTl+5IUJfx43P1Y
        Key ID: "ca test"
        Serial: 1
        Valid: from 2019-09-28T14:53:00 to 2019-09-29T14:54:31
        Principals:
                test
        Critical Options:
                source-address 123.123.123.123
        Extensions:
                permit-X11-forwarding
                permit-agent-forwarding
                permit-port-forwarding
                permit-pty
                permit-user-rc

サーバの設定

  • CAの公開鍵を置く。
  • 許可するPrincipalsをファイルに書く。複数ある場合は改行する。
$ vi /etc/ssh/sshd_config
# 下記を追加
TrustedUserCAKeys /etc/ssh/ca.key.pub
AuthorizedPrincipalsFile /etc/ssh/authorizedprincipals

# チェック
$ sshd -t

# 再起動
$ systemctl restart sshd

使用方法

  • 証明書はクライアントの鍵と同じところに置く
$ ssh -i ./client/client.key test@192.168.0.1

証明書の失効

$ vi list.txt
serial:1
serial:2
↑
0は指定できない

# KRL を更新する場合は -u を付ける
$ ssh-keygen -k -f krl -s ca.key.pub list.txt

$ vi /etc/ssh/sshd_config
# 下記を追加
RevokedKeys /etc/ssh/krl

$ systemctl restart sshd
aat00000
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away