githubで個人、会社など複数アカウントを利用していると下記のような ~/.ssh/config
を書いて切り替えて使うことがあると思われる。
~/.ssh/config
Host github1
HostName github.com
IdentityFile ~/.ssh/id_hogehoge1_for_enterpirse
User git
TCPKeepAlive yes
IdentitiesOnly yes
Host github2
HostName github.com
IdentityFile ~/.ssh/id_hogehoge2_for_personal
User git
TCPKeepAlive yes
IdentitiesOnly yes
- 切り替えるとき
# github1 を使うとき
$ssh github1
# github2 を使うとき
$ssh github2
これで、例えば、github1
のアカウントのプライベートリポジトリを git clone
するときに、下記のようにやるとエラーになる。
$ git clone git@github.com:hogehoge1/private_repo.git
Cloning into 'private_repo'...
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
ここの git@github.com:hogehoge1/private_repo.git
は、githubのclone or download
ボタン からコピーしたものだがエラーになってしまう。
この場合は、下記のようにするとgit clone
できる。
$ git clone git@github1:hogehoge1/private_repo.git
git@github1:hogehoge1/private_repo.git
の github1
部分は ~/.ssh/config
のHost
を指定する必要がある。
githubで複数アカウントを利用していないと気づかない落とし穴だと思いました。結構ハマってしまった。。。