ssh の秘密鍵を複数サイトに向けて設定する2022/02/10

ssh の秘密鍵を複数サイトに向けて設定する

ソースコードのバージョン管理のリモートリポジトリについて、ずっと Github のみを利用していました。

最近 Bitbucket も使う機会ができたので、そちらの設定をしていました。

どちらも ssh の公開鍵を登録して、秘密鍵を使ってアクセスできます。 こうすることで、リクエストのたびにパスワードを求められることを回避できるので、私は積極的に設定しています。

これら2つのサイトに向けた秘密鍵を設定した時の手順についてのメモです。

結論

  • ssh 秘密鍵と公開鍵の作成はいつも通り行います。
  • .ssh/ に config というファイルを設置することでホスト・IPアドレスごとに使用する鍵の設定ができます。

ssh 秘密鍵と公開鍵の作成

以下の記事参考に ssh-keygen で秘密鍵・公開鍵のペアを作ります。
Github にSSH公開鍵を登録

コマンド実行の際に、出力する場所を求められるので前回とは異なる場所で違いがわかるようにしましょう。

公開鍵をサービスに登録する

今回は Bitbucket に登録しました。 Github でも Bitbucket でも同じような設定方法ですので、それほど迷うことはありません。

「.pub」の公開鍵の方をサービスに登録します。間違えないようにしましょう。

Mac であれば以下のコマンドでクリップボードにコピーできます。

pbcopy < ~/.ssh/id_rsa.pub

秘密鍵のパーミッションを変更しておく

秘密鍵の方は他ログインしたユーザーなどに read できないように、パーミッションを変更しておきましょう。

たとえば以下のようなコマンドになるはずです。

chmod 600 ~/.ssh/id_rsa

ssh の設定ファイルにドメインごとの設定を記述する

.ssh/config というファイルを作成し、ここに ssh の設定を記述します。

以下の書式で設定します。

Host [ホスト名]
  User [ユーザー名: GitHubの場合は`git`]
  Port 22
  HostName [サービスのドメイン または IPアドレス]
  IdentityFile [秘密鍵のパス]
  IdentitiesOnly yes

たとえばこんな感じ、Github と Bitbucket にそれぞれ別の鍵を設置しました。

Host github.com
    User git
    Port 22
    HostName github.com
    identityFile ~/.ssh/id_rsa
    IdentitiesOnly yes

Host bitbucket.org
    User git
    Port 22
    HostName bitbucket.org
    identityFile ~/.ssh/bitbucket/id_rsa_bb
    IdentitiesOnly yes

おわりに

複数の鍵を登録できると便利ですね。 今回は Github と Bitbucket での使い分けでしたが、個人用とか仕事用とかで分ける必要がある時なども使える設定です。

リクエストの都度パスワードを入力したりするのは手間なので、積極的に秘密鍵・公開鍵を設定しておくと快適なのでおすすめです。

  • このエントリーをはてなブックマークに追加
prev