2021年08月24日 更新

Gitに特定のSSH Keyを読ませる方法

どうも、クラゲジュニアです。

今回は、複数のGitを複数のアカウントで分けて運用したい人向けの記事です。

手順

.sshディレクトリに移動

まずは、.sshディレクトリに移動します。
基本的に.sshディレクトリは、ルート(~)に存在しています。
.sshがない人は以下コマンドで作成してください。

mkdir .ssh

秘密鍵・公開鍵の作成

以下コマンドで作成可能です。

ssh-keygen

オプションが数多く存在するので気になる人は、こちら
今回は、ファイル名の指定が可能なfオプションのみ指定しました。
コマンドを打ち込むと以下の様に対話形式で質問されるので、任意な値を入力しましょう。

入力が終わると、The key fingerprintThe key's randomart imageが表示され、先ほど指定した名前のファイルが作成されています。
.pubの拡張子を持つファイルが公開鍵です。
.pubの意味は、publicです。
拡張子がついていないものは、秘密鍵です。
名前の通りどこにも公開しないでください。

ちなみに、名前を指定しないとid_rsaid_rsa.pubという名前のファイルがデフォルトで、作成されます。

Configファイルの作成

.sshディレクトリ内のconfigファイルに以下の様な記述を追加。
configファイルが存在しない場合は、作成する。    今回は、簡単な設定しか行っていないませんが、設定がいくつも存在します。
気になる人は、こちら

Gitへの公開鍵登録

Gitへは、 Setting->SSH and GPG keys-> new SSH keyの手順で公開鍵を登録。

Repositoryの認証keyを変更

先ほど作成したSSH keyを読ませたいGit管理されたディレクトリに移動します。
以下コマンドを打ち込むと現在のGitディレクトリの情報が表示されます。

git config -e

cloneしたままの状態なので、認証がgit@github.comになっています。

git@github.comをconfigファイルに指定したhost名に変更しましょう。

この状態で、git pullgit pushを行うと認証先がconfigファイルで指定したhostになるので、GitごとにSSH keyを読み込ませることができます。

この方法は、urlがsshの場合のみ有効です。
httpsで接続している人は、sshに変更してから作業してください。

以上です。