sshのauthorized_keysの高速化(GWアドベントカレンダー 5日目)

  • 投稿日:
  • by
  • カテゴリ:

この記事はGWアドベントカレンダーの5日目の記事です。

Gitlabのリポジトリにsshで接続するときはOSのgitユーザを使います。 このユーザはGitlabのユーザすべてで共用します。 そのため、全利用者の公開鍵情報をgitユーザに紐付けて管理する必要があります。

これを実現する方法として、gitユーザのauthorized_keysに全ユーザ分の公開鍵を書いておく方法がありますが、sshアクセスの度にファイルを上からスキャンし、確認する必要があり効率が悪いです。 そこでユーザ名に応じた公開鍵を返すコマンドを用意することで余計な確認を減らすことで高速化することができる仕組みがあります。

以下にGitlabでの設定の仕方が書いてありますが、OpenSSHの提供するAuthorizedKeysCommandという設定を使うことで実現できます。この設定に、公開鍵を返すコマンドを指定します。

Fast lookup of authorized SSH keys in the database

この仕組みを使うと、gitユーザのauthorized_keysに公開鍵を記載する必要がありません。