概要
別の記事"CSM: Dynamic Secretをためす"にて、"必要なときに作成され、利用後削除される'一時的に利用される認証情報'"である Dynamic Secretの利用について、ご紹介させていただきました。
SSHでの 公開鍵と秘密鍵を利用した認証がよく用いられますが、多くのサーバにアクセスする必要がある場合、公開鍵を各サーバへの設定が必要で、管理が大変です。管理が複雑なため、不必要になった鍵をそのままにしておりたり、同じ鍵を長期間利用し続ける等、管理上の問題が生じることとなり、セキュリティ上の懸念があります。
今回、ご紹介する方法では、SSHの公開鍵と秘密鍵のペアを利用する代わりに、一時的なSSH証明書を発行してSSHの認証を行う方法をご紹介します。
目的
最短で、CSMで一時的な証明書を発行し、SSHでの利用をためします
参照ドキュメント
- Akeyless Documentation
- Akeyless Tutorial
手順
CSMのセットアップ
CSMのセットアップがまだの場合は、まずCSMのセットアップ ("CSM: Dynamic Secretをためす") を行います
signing-keyの作成
CAでの署名で必要となる、RSAの鍵を用意します
既存のキーをインポートすることも可能ですが、今回は新規作成を行います
Items > New > Encryption Key > DFC を選択します
"Name"へ鍵名(任意:例"signing-key")を入力し、"Next"をクリックします
”Type"で"RSA2048"を選択、"Generated By"で、"Akeyless"を選択し、"Next"をクリックします
サーバの設定
SSHサーバ側の "/etc/ssh/ca.pub"へ先ほどコピーした”RSA Public Key"の値を保存します
$ sudo vi /etc/ssh/ca.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIuaTlibfGhg3l6Wxrm+UbMDMYRHftWBGZRe7GSTLwyC+48++CEjsDICi2zeYtviq9pueDN+gTrdG/uV/c74gWdDbJsijPmUynqfdTYQpU+TYSInpbrGOOnL0rl7X2am3Qp5cRXYheoHwdf2EOzNhQt7+G7ByCW8i+qmttCIsLAU7ZU0rWJh2HQBBwW9mgVk0DfKBxdm4tdjkhW+bDlEyVwpBIsav2C4avb2APNJJwhqKDfUFKeX5kYQvsmQvitkkoT7z8+eURmEqznv453W09sboHHiyFzn7/o9dYSdfIB3L09nRzJ23M0RubJwXAWMFlyhtitT/y64Q67PaE/XSh
"/etc/ssh/sshd_config"の最後へ下記2行を追加します
$ sudo vi /etc/ssh/sshd_config
...
TrustedUserCAKeys /etc/ssh/ca.pub
PubkeyAcceptedKeyTypes=+ssh-rsa,ssh-rsa-cert-v01@openssh.com
sshdの再起動を行います
$ sudo service ssh restart
CAの作成
Items > New > "SSH Cert Issuer" を選択します
Nameに"SSH Cert Issuer" の名前(任意:例"ssh-cert-issuer")を入力します
"Signer Key"で、作成したRSA鍵(例:"/signing-key")をリストより選択します
"Allowed User(s)"で、sshの対象のユーザを入力します
"Certificate lifetime in seconds"で、SSH証明書の有効期間の指定が可能です(今回は変更なし)
"SSH Cert Issuer"が作成されたことを確認します
SSH証明書の発行
sshクライアント側で、一時的に利用可能なSSH証明書の発行をおこないます
akeyless get-ssh-certificate --cert-username ubuntu --cert-issuer-name ssh-cert-issuer --public-key-file-path ~/.ssh/id_rsa.pub
これにて、一時的に利用可能なSSH証明書をもちいて、sshが利用できるようになりました
補足
SSH証明書の他、PKI/TLS証明書もサポートしています