複数のgithubアカウントを同じコンピュータ上に設定する(repo URLを変更せずに)
課題 つのコンピュータから2つの異なるgithubアカウントを使用する必要があります. アカウントを切り替えるたびにsshキーを設定する必要はありません. repoのsshアドレスを編集する必要はありませんas suggested by a lot of online tutorials . 解決策:1つのフォルダー内のすべての作業reposを置き、あなたのssh - configを条件付きで別のsshキーを使用して更新します.他のすべては、デフォルトのsshキーを使用します.
GithubはSSH によるプロトコルRSA あなたのコンピュータを認証する暗号システム.新しいSSHキーを生成すると、秘密キーと公開キーが作成されます.あなたのGithubアカウントに公開キーを追加する必要がありますが、マシン上の秘密キーを残します.あなたはもっと読むことができますpublic-key cryptography here .
あなたがすでに生成して、あなたのGTTHUBアカウントにあなたのSSHキーを加えたならば、skip this section .
既存のキーのチェック まず、端末に行くことによってマシンにSSHキーが存在するかどうかをチェックします. どのキーがどのアカウントに属していて、新しいキーから始めたいかわからない場合は、実行してキーを削除することができます 新しいキーの生成
ターミナルから
安全なパスフレーズを入力します.これは2つの秘密鍵を生成します 公開鍵をコピーする
ブラウザから、右上隅からプロフィール画像をクリックしてあなたのGitHubアカウントの設定に移動します.
サイドバーのユーザー設定で
クリック
あなたのコピーされた公開鍵を「キー」フィールドにペーストして、それに「タイトル」分野で適当なタイトルを与えてください.
クリック 上記の手順を繰り返して2番目のGithubアカウントの新しいキーを追加します.ちょうど別の名前を与えるようにしてください
From terminal, run
Check if a config file exists by running -
Open the config file by dragging it into your code editor.
設定
その後、実行
SSHキーを設定したので、まだユーザを設定する必要があります.nameとuserメール変数.これらは、コミットオブジェクトの作者とコミッタフィールドで何が終わるかを決定します.これを設定することなく、作業ディレクトリにプッシュすることができますが、あなたのコミットがあなたの仕事のメールと名前を持っている場合は あなたが存在するかどうかチェックしてください 作業ディレクトリに同じことをします.
開ける
インサイド
現在、あなたは両方のGitアカウントをSSHで使うことができます、そして、あなたのコミットは著者のために正しいメールと名前を持ちます.
注:詳細な内訳
それで、コマンドは基本的にあなたの現在の働くディレクトリを得るために言っています
GithubはSSH によるプロトコルRSA あなたのコンピュータを認証する暗号システム.新しいSSHキーを生成すると、秘密キーと公開キーが作成されます.あなたのGithubアカウントに公開キーを追加する必要がありますが、マシン上の秘密キーを残します.あなたはもっと読むことができますpublic-key cryptography here .
あなたがすでに生成して、あなたのGTTHUBアカウントにあなたのSSHキーを加えたならば、skip this section .
GTHUUBアカウントにSSHキーを生成して追加する。
既存のキーのチェック
ls -al ~/.ssh
. デフォルトでは、公開鍵のファイル名はid_rsa
アンド・エンド.pub
. ssh-add -D
端末から.これは手動で追加されたキーを削除するので、問題に遭遇しているなら、これを見てくださいstackoverflow answer . あなたのsshキーが位置しているフォルダに行ってくださいopen ~/.ssh
端末から上書きする前にコピーを保存します.ターミナルから
ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "[email protected]"
あなたが同じ名前の既存のキーを上書きするよう頼まれるならばy
上書きする場合.それを上書きしたくないならn
そして、上記のコマンドを新しいファイル名で再入力します.ジャストチェンジid_rsa
好きにid_rsa_PERSONAL
.id_rsa
と公開鍵id_rsa.pub
. id_rsa.pub
走ることでpbcopy < ~/.ssh/id_rsa.pub
端末から.また、実行してSSHキーディレクトリを開くことができますopen ~/.ssh
, ドラッグid_rsa.pub
コードエディターにファイルをコピーし、ファイルの内容をコピーします.ブラウザから、右上隅からプロフィール画像をクリックしてあなたのGitHubアカウントの設定に移動します.
サイドバーのユーザー設定で
SSH and GPG keys
.クリック
New SSH key
あなたのコピーされた公開鍵を「キー」フィールドにペーストして、それに「タイトル」分野で適当なタイトルを与えてください.
Add SSH key
. id_rsa_COMPANY
.ssh設定の設定
cd ~/.ssh
.ls config
. If you see ls: config: No such file or directory
, create a new config file by running touch config
.Paste the following into the file:
Host github.com
HostName github.com
User git
IdentitiesOnly yes
AddKeysToAgent yes
UseKeychain yes
Match Host github.com !exec "pwd | grep '/COMPANY' > /dev/null"
IdentityFile ~/.ssh/id_rsa
Match Host github.com exec "pwd | grep '/COMPANY' > /dev/null"
IdentityFile ~/.ssh/id_rsa_$COMPANY
Source 上記のスニペットに対して.設定
UseKeychain
yesにすると、パスフレーズをキーチェーンに格納します.exec "pwd | grep '/COMPANY' > /dev/null"
現在のフォルダが入れ子になっているかどうかを調べますCOMPANY
フォルダ.それが使用されるならばid_rsa_$COMPANY
SSHキーとデフォルトの1つ.〔1〕chmod 600 ~/.ssh/config
. ユーザーの設定nameとuser電子メール
SSHキーを設定したので、まだユーザを設定する必要があります.nameとuserメール変数.これらは、コミットオブジェクトの作者とコミッタフィールドで何が終わるかを決定します.これを設定することなく、作業ディレクトリにプッシュすることができますが、あなたのコミットがあなたの仕事のメールと名前を持っている場合は
.gitconfig
ファイル..gitconfig
あなたのルートでls ~/.gitconfig
. を持っていない場合はtouch ~/.gitconfig
. 開ける
.gitconfig
あなたのルートと内部であなたの個人的なGitユーザー名と電子メールを加えます.また、includeIf
gitに異なるものを使用するように指示するパス..gitconfig
あなたの仕事のためにrepos.# ~/.gitconfig
[user]
email = [email protected]
name = your-user-name
[user]
email = [email protected]
name = your-user-name
[includeIf "gitdir:~/PATH/TO/WORK/DIR/RELATIVE/TO/ROOT"]
path = ~/PATH/TO/WORK/DIR/RELATIVE/TO/ROOT/.gitconfig
インサイド
.gitconfig
あなたの仕事ディレクトリで、あなたの仕事メールを加えて、ユーザー名を働かせてください.# ~/PATH/TO/WORK/DIR/RELATIVE/TO/ROOT/.gitconfig
[user]
email = [email protected]
name = your-work-user-name
注:詳細な内訳
exec "pwd | grep '/COMPANY' > /dev/null"
:pwd
スタンドprint working directory
. The |
左のコマンドの標準出力を受け取り、右のコマンドに標準入力としてパイプを入れます.grep
プレーンテキストを検索します.>
前のコマンドの結果を右側のファイルにリダイレクトします./dev/null
すべてのデータが捨てられる「ブラックホール」です.詳しく見る/dev/null
here .それで、コマンドは基本的にあなたの現在の働くディレクトリを得るために言っています
COMPANY
nameを返し、返り値を破棄する.このコマンドの終了コードは、どのsshキーを使用するかを決定します.Reference
この問題について(複数のgithubアカウントを同じコンピュータ上に設定する(repo URLを変更せずに)), 我々は、より多くの情報をここで見つけました https://dev.to/sammm/setting-up-multiple-github-accounts-on-the-same-computer-without-having-to-change-the-repo-url-1007テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol