投稿日:
2020年12月31日
最終更新日:
【ssh】複数のアカウントを使い分けてGithubのリポジトリにアクセスする方法【切り替え】
YouTubeも見てね♪
Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
モンスターエナジー 355ml×24本 [エナジードリンク]
脳を活性化させるにはこれ!
ドラゴンクエスト メタリックモンスターズギャラリー メタルキング
みんな大好き経験値の塊をデスクに常備しておこう!
Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK
メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
サンディスク microSD 128GB
スマホからSwitchまで使える大容量MicroSDカード!
目次
仕事用とプライベート用を切り替えたい
誤コミットを防ぐのが目的
皆さんはGithubを使っているでしょうか?
筆者ももちろん利用しているのですが、仕事用の有料アカウントとプライベート勉強用の無料アカウントの二つを持っているのですが、間違えてコミットなどをしたくないのでうまく使い分ける方法を探していたのですが、先日良さげな方法を見つけたので今回はそのやり方をご紹介しようと思います♪
規約的に複数アカウントは問題無し
その前に、Githubのアカウントを一人が複数持つ事が規約違反という記事をよく目にしますが、正しくは無料アカウントを複数持つ事が禁止されています。
無料の「アカウント」を複数持つことはできません。 GitHub利用規約 – GitHub Docs
筆者の場合は、仕事用は有料、プライベート勉強用は無料なので特に利用規約に違反していないと思っております!笑
手順
sshのconfigの設定
まず、今回は以下の設定を.ssh/config
に記述してみます。
1
2
3
4
5
6
7
8
9
|
Host github-work
HostName github.com
IdentityFile ~/.ssh/github-work
user git
Host github-private
HostName github.com
IdentityFile ~/.ssh/github-private
user git
|
また、それぞれのアカウントでGithubへの公開鍵登録及び疎通確認はしている事とします。
確認
では、それぞれの認証情報を使ってssh -T {名称}
コマンドでGithubに接続が出来るか確認してみましょう。
1
2
3
4
5
|
ssh -T github-work
Hi github-work! You've successfully authenticated, but GitHub does not provide shell access.
ssh -T github-private
Hi github-private! You've successfully authenticated, but GitHub does not provide shell access.
|
正常に接続時のユーザーが区別出来ていますね♪
git configの削除
次に作業をする前にGitのグローバル設定を確認してみましょう。
git config --global --list
を実行して現在の設定を確認してみます。
1
2
|
user.name=github-work
user.email=XXX@gmail.com
|
上記のようにuser
周りの設定がグローバル設定されている場合、未指定の場合にデフォルトでこのユーザーが利用されてしまうのでgit config --global --unset {キー名}
で削除しておきましょう。
クローン方法
例えば、github-workアカウントがアクセス可能で、github-privateアカウントがアクセス出来ないリポジトリがあった場合に、それぞれsshでクローンしようとしてみましょう。
コマンドはgit clone git@{config名}:{Githubアカウント名}/{リポジトリ名}.git
となります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
git clone git@github-work/YYY.git
Cloning into 'YYY'...
remote: Enumerating objects: 585, done.
remote: Total 585 (delta 0), reused 0 (delta 0), pack-reused 585
Receiving objects: 100% (585/585), 286.63 KiB | 406.00 KiB/s, done.
Resolving deltas: 100% (268/268), done.
git clone git@github-private:XXX/YYY.git
Cloning into 'YYY'...
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
|
このようにそれぞれ正しく指定した認証情報が使われているので、リポジトリへのアクセス権限も問題ないですね♪
この状態でクローンしたディレクトリに移動し以下のコマンドをすると、正常にremote URLに使用したユーザー情報がセットされているのが確認出来ます。
1
2
3
4
5
6
7
8
9
10
11
|
credential.helper=osxkeychain
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
remote.origin.url=git@github-work:XXX/YYY.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
|
終わりに
以上のように、簡単にGithubへの接続情報を切り替える事が可能になりました♪
複数アカウントを使い分けてる方は少なくないと思うので、気になった方はぜひ試してみてはいかがでしょうか♪