LoginSignup
9
1

More than 1 year has passed since last update.

Gitで使用するSSHキーを指定する方法あれこれ

Posted at

gitでSSH接続する際、デフォルトでは ~/.ssh/id_rsa が使用されますが、これとは別のSSH鍵を使う方法を紹介します。

~/.ssh/configを使う方法

~/.ssh/config に以下の様な設定を書きます。

Host github.com
 HostName github.com
 IdentityFile ~/.ssh/id_rsa_github

Host bitbucket.org
 HostName bitbucket.org
 IdentityFile ~/.ssh/id_rsa_bitbucket

この様に書くとリモートリポジトリがGitHubの場合には ~/.ssh/id_rsa_github を、bitbucketの場合は ~/.ssh/id_rsa_bitbucket が使われます。

Gitだけ普段とは別のSSHキーを使いたい場合や、リモートサーバごとに鍵を使い分けたい場合にはこの方法が便利です。

core.sshCommand 設定を使う方法

Gitリポジトリごとに異なるSSHキーを使う場合には以下の方法が便利です。
以下のワンライナーコマンドで、指定したSSH鍵を使ってクローンし、さらにそれ以降もその鍵を使うように .git/config に設定を保存してくれます。

git clone -c "core.sshCommand=ssh -i ~/.ssh/id_rsa_example -F /dev/null" git@github.com:example/example.git

既に存在しているリポジトリで、使用するSSH鍵を指定するには以下のようにします。

git config core.sshCommand "ssh -i ~/.ssh/id_rsa_example -F /dev/null"

GIT_SSH_COMMAND 環境変数を使う方法

以下のように GIT_SSH_COMMAND という環境変数を使ってSSH鍵を指定することも可能です。

export GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_example -F /dev/null"
git clone git@github.com:example/example.git

これは上で紹介した core.sshCommand が使えないケース( .git/config を汚したくない場合など)で、その場かぎりの鍵を使うケースなどで使えそうです。

9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1