LoginSignup
4
3

More than 3 years have passed since last update.

SSHのCA認証

Posted at

参考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
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3