HOWTO · Git

SSH キーを使用した Git プッシュ

このチュートリアルでは、コマンド ラインを使用して、特定の SSH キーを含む Git ファイルをリモート サーバーにプッシュするプロセスについて説明します。

このページの内容

SSH はセキュア シェルの略です。 これは、SSH ネットワーク プロトコルのアクセス証明書を提供するキーです。

保証されていないオープン ネットワーク上のエンジン間でリモート サーバーへのアクセスを提供します。 データ、ファイル、およびネットワーク管理の転送に使用され、オリジンからリモート サーバーへのアクセスを提供します。

開発者がローカル Git インストールとリモート Git リポジトリ間でファイルを安全にプッシュ、プル、または複製したい場合、開発者が最初に必要とすることは、そのサーバーで SSH キー ペアを作成することです。 このキーを通じて、開発者は、認定された開発者の Git インストールとリモート サーバーの両方によって識別されます。

SSH キー ペアを生成し、この SSH キーを使用して変更された状態の作業をリモート リポジトリにプッシュする方法を見てみましょう。 SSH キー ペアの生成の詳細は次のとおりです。

SSH キー ペアの生成

SSH キー ペアを作成するには、Git Bash に移動します。 開いた後、次のコマンドを電子メール ID とともに使用します。

ssh-keygen -t rsa -b 4096 -C "email@test.com"

ここで、要求されたとおりにファイルの場所とパスフレーズを入力する必要があります。

git ssh-keygen

上記のセクションのように、提供された詳細入力に基づいて、上記で指定された RSA メソッドを使用してキーが生成されることがわかります。 キーが生成されたら、このキーを使用して、必要な作業をリモート リポジトリにプッシュする必要があります。

SSH キーの指定

開発者が自分の作業を特定の Git リポジトリにプッシュするために、別の SSH キーが必要になる場合があります。 ~/.ssh/id_rsa はデフォルトのサーバー SSH デプロイ キーであるため、開発者は、開発者のワークスペース内のローカル リポジトリを、一意のホストを持つ可能性がある Git サーバーにプッシュすることはできません。

ユーザー名とホスト名が同一であるようなシナリオでは、開発者は ~/.ssh/config で別の SSH キーと権限を指定する必要があります。 構成が以下に定義されているように見えるとしましょう。

Host git-as-anaa
  HostName git.com
  User git
  IdentityFile ~/home/key/xsshfile.thuc
  IdentitiesOnly yes

Host git-as-tomi
  HostName git.com
  User git
  IdentityFile /home/key/sshfile.ten
  IdentitiesOnly yes

このような構成の場合、開発者は github-as-anaa と github-as-tomi のみを使用して、URL の元のホスト名 (git.anaa.com) を置き換えます。

git remote add anaa git@git-as-anaa:your-repo.git
git remote add tomi git@git-as-tomi:your-repo.git

オプション IdentitiesOnly yes は、デフォルトの ID の使用を停止するために使用されます。 一方、デフォルト名と同一の ID ファイルもある場合、オプション IdentityFile は他の構成オプションと同じではなく、試行する ID のリストに追加されるため、最初に試すことが確実に優先されます。