Open7

Hashicorp VaultでSSHのCA認証

あごしあごし

まずはsshエンジンを有効化

vault$ vault secrets enable -path=ssh-ca ssh
Success! Enabled the ssh secrets engine at: ssh-ca/
あごしあごし

なんでpkiエンジンとsshエンジン分かれてるのか?
そもそもsshは証明書を使っているわけではない??認証局の公開鍵をsshd_configへ登録するみたい。

TrustedUserCAKeys <<鍵のパス>>

opensshのCA認証の仕組みをちゃんと理解できていない。

あごしあごし

tlsはx509証明書(rfc5280)、opensshはssh証明書(rfc4252)を使っているのでvaultのエンジンも分かれているようだ。sshでx509証明書を使う仕様(rfc4256)もあるみたいだけど、opensshでは使われていないっぽい。

RFC5280(日本語)
https://tex2e.github.io/rfc-translater/html/rfc5280.html

OPENSSH
https://man.openbsd.org/ssh
RFC4252(日本語)
https://tex2e.github.io/rfc-translater/html/rfc4252.html

RFC4256(日本語)
https://tex2e.github.io/rfc-translater/html/rfc4256.html

あごしあごし

pkiエンジンでopensshのssh証明書認証はできないことが分かったので、素直にsshエンジンで鍵ペアを作る。

# host key用のエンジンも建てる予定なので、client用のpathが分かりやすいように立て直した。
vault$ vault secrets enable -path=ssh-client-signer ssh
Success! Enabled the ssh secrets engine at: ssh-client-signer/

vault$ vautl write ssh-client-signer/config/ca generate_signing_key=true
Key           Value
---           -----
public_key    ssh-rsa XXXXXXX