web-dev-qa-db-ja.com

同じコンピュータ上の複数のgithubアカウント?

私のコンピュータから、私の実際の "仕事用"リポジトリと、git Hub上の個人用リポジトリの両方を操作しようとしています。

仕事用アカウントが最初に設定され、すべてが問題なく動作します。

私の個人アカウントは、私の個人リポジトリにプッシュするようには見えません。これは、別のアカウント/ Eメールで設定されています。

自分の仕事用の鍵を自分の個人用アカウントにコピーしようとしましたが、当然ながら鍵は1つのアカウントにしか添付できないため、エラーになります。

それぞれのgithubの認証情報から、両方のアカウントにプッシュ/プルするにはどうすればよいですか。

336
Kevin Whitaker

あなたがする必要があるのはあなたのSSH設定を複数のSSH鍵ペアで設定することだけです。

また、異なるペルソナを使用して複数のリポジトリを操作している場合は、個々のリポジトリのユーザー設定がそれに応じて上書きされていることを確認する必要があります。

ユーザー名、メールアドレス、GitHubトークンの設定 - 個々のリポジトリの設定を上書きする https://help.github.com/articles/setting-your-commit-email-address-in-git/

お役に立てれば。

注:gitから、リポジトリごとに異なる電子メールを使用する必要があるかもしれません。2.13~/.gitconfigにあるグローバル設定ファイルを以下のような条件を使って編集することでディレクトリごとにEメールを設定できます。

[user]
    name = Pavan Kataria
    email = [email protected]

[includeIf "gitdir:~/work/"]
    path = ~/work/.gitconfig

そして、作業固有の設定〜/ work/.gitconfigは次のようになります。

[user]
    email = [email protected]

コメントでこれを知らせてくれてありがとう@alexg。

216
Pavan

HTTPSを使用する:

リモートURLをhttpsに変更します。

git remote set-url Origin https://[email protected]/USERNAME/PROJECTNAME.git

そしてあなたは行ってもいいです:

git Push

コミットがUSERNAMEによって実行されたように見えるようにするために、このプロジェクトでも ser.name および ser.email を設定できます。

git config user.name USERNAME
git config user.email [email protected]
113
Greg Leszek

形状に入る

別のgithub/bitbucket/whateverアカウントでgitリポジトリを管理するには、単に新しいSSHキーを生成する必要があります。

しかし、2番目のIDでリポジトリをプッシュ/プルする前に、形状を整える必要があります。典型的なid_rsaid_rsa.pubキーペアでシステムがセットアップされていると仮定しましょう。現在、tree ~/.sshは次のようになっています

$ tree ~/.ssh
/Users/you/.ssh
├── known_hosts
├── id_rsa
└── id_rsa.pub

まず、そのキーペアに名前を付けます-descriptivenameを追加すると、どのキーがどのユーザー/リモートに使用されているかを覚えやすくなります

# change to your ~/.ssh directory
$ cd ~/.ssh

# rename the private key
$ mv id_rsa github-mainuser

# rename the public key
$ mv id_rsa.pub github-mainuser.pub

次に、 新しいキーペアを生成 –ここで、新しいキーにgithub-otheruserという名前を付けます

$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/github-otheruser

ここで、tree ~/.sshを見ると、

$ tree ~/.ssh
/Users/you/.ssh
├── known_hosts
├── github-mainuser
├── github-mainuser.pub
├── github-otheruser
└── github-otheruser.pub

次に、キー構成を定義する~/.ssh/configファイルをセットアップする必要があります。 適切な所有者読み取り/書き込み専用権限 で作成します

$ (umask 077; touch ~/.ssh/config)

お気に入りのエディターでそれを開き、次の内容を追加します

Host github.com
  User git
  IdentityFile ~/.ssh/github-mainuser

Host github.com-otheruser
  HostName github.com
  User git
  IdentityFile ~/.ssh/github-otheruser

おそらく、プライマリgithub IDに関連付けられた既存のリポジトリがいくつかあるでしょう。そのため、「デフォルト」のgithub.com Hostは、mainuserキーを使用するように設定されています。あるアカウントを別のアカウントに優先させたくない場合は、システム上のexistingリポジトリを更新して、更新されたssh構成を使用する方法を示します。


新しいSSHキーをgithubに追加します

github.com/settings/keys に移動して、新しいpublicキーを追加します

以下を使用して公開キーの内容を取得できます:githubにコピー/貼り付け

$ cat ~/.ssh/github-otheruser.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBVvWNQ2nO5...

これで、新しいユーザーIDがすべて設定されました。以下に、その使用方法を示します。


作業の完了:リポジトリのクローン作成

では、これをどのように組み合わせてgitとgithubと連携させるのでしょうか?さて、鶏肉と卵がないとできないので、既存のレポのクローンを作成します。この状況は、職場の新しいgithubアカウントを持ち、会社のプロジェクトに追加された場合に当てはまる場合があります。

github.com/someorg/somerepoがすでに存在し、それに追加されたとしましょう-クローニングは簡単です

$ git clone github.com-otheruser:someorg/somerepo.git

そのbolded部分mustは、~/.ssh/configファイルで設定したHost名と一致する必要があります。 gitを対応するIdentityFileに正しく接続し、githubで適切に認証します


片付け:新しいレポの作成

それでは、鶏肉と卵がないと食べられないので、セカンダリアカウントで新しいレポを公開することを検討します。この状況は、セカンダリgithubアカウントを使用してnewコンテンツを作成するユーザーに適用されます。

すでにローカルで少し作業を行っており、GitHubにプッシュする準備ができていると仮定しましょう。ご希望の場合は、私と一緒にフォローすることができます

$ cd ~
$ mkdir somerepo
$ cd somerepo
$ git init

identity を使用するようにこのレポを設定します

$ git config user.name "Mister Manager"
$ git config user.email "[email protected]"

最初のコミットを行います

$ echo "hello world" > readme
$ git add .
$ git commit -m "first commit"

git log を使用して、コミットが新しいIDが使用されたことを確認します。

$ git log --pretty="%H %an <%ae>"
f397a7cfbf55d44ffdf87aa24974f0a5001e1921 Mister Manager <[email protected]>

よし、GitHubにプッシュする時間です! githubは新しいレポについてまだ知らないので、まず github.com/new に移動して新しいレポを作成し、名前を付けますsomerepo

正しいID /資格情報を使用してgithubと「通信」するようにレポを構成するために、リモートを追加しました。新しいアカウントのgithubユーザー名がsomeuserであると仮定します...

$ git remote add Origin github.com-otheruser:someuser/somerepo.git

そのbolded部分は絶対に重要であり、mustは定義したHostと一致します~/.ssh/configファイル

最後に、レポをプッシュ

$ git Push Origin master

新しいSSH構成を使用するように既存のリポジトリを更新します

既にいくつかのレポのクローンを作成しているが、今は新しいSSH設定を使用したいとします。上記の例では、以前のid_rsa/id_rsa.pubキーペアをSSH構成ファイルのHost github.comに割り当てることにより、既存のリポジトリをそのまま保持しました。これには何の問題もありませんが、少なくとも5つのgithub構成があり、そのうちの1つを「デフォルト」構成と考えるのは好きではありません。それぞれについて明確にしたいと思います。

これがある前に

Host github.com
  User git
  IdentityFile ~/.ssh/github-mainuser

Host github.com-otheruser
  HostName github.com
  User git
  IdentityFile ~/.ssh/github-otheruser

これを更新します(boldの変更)

Host github.com-mainuserHostName github.com
  User git
  IdentityFile ~/.ssh/github-mainuser

Host github.com-otheruser
  HostName github.com
  User git
  IdentityFile ~/.ssh/github-otheruser

しかし、これは、github.comリモートを使用する既存のリポジトリが、このIDファイルで機能しなくなることを意味します。しかし、心配しないでください、それは簡単な修正です。

既存のリポジトリを更新して新しいSSH構成を使用するには、リポジトリのgit構成ファイルを開いてURLを更新するだけです!

$ cd existingrepo
$ nano .git/config

リモートOriginフィールドを更新します(boldの変更)

[remote "Origin"]
        url = github.com-mainuser:someuser/existingrepo.git
        fetch = +refs/heads/*:refs/remotes/Origin/*

それでおしまい。これで、Push/pullを思いのままにできます


SSHキーファイルパーミッション

公開キーが正しく機能しないという問題が発生した場合、SSHは、~/.sshディレクトリと対応するキーファイルで許可されている file permissions で非常に厳しいです。

経験則として、すべてのディレクトリは700であり、すべてのファイルは600である必要があります-これは所有者が読み取り/書き込み専用であることを意味します-他のグループ/ユーザーは読み取り/書き込みができません

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/config
$ chmod 600 ~/.ssh/github-mainuser
$ chmod 600 ~/.ssh/github-mainuser.pub
$ chmod 600 ~/.ssh/github-otheruser
$ chmod 600 ~/.ssh/github-otheruser.pub

SSHキーの管理方法

接続するホストごとに個別のSSHキーを管理するため、1つのキーが侵害されても、そのキーを使用した他のすべての場所でキーを更新する必要はありません。これは、1億5,000万人のユーザーの情報が盗まれたという通知をアドビから受け取ったときのようなものです。今では、そのクレジットカードをキャンセルし、それに依存するすべてのサービスを更新する必要があります。

~/.sshディレクトリは次のようになります。接続する各ドメインのフォルダーに、ユーザーごとに1つの.pemキーがあります。 .pemキーを使用するため、キーごとにoneファイルのみが必要です。

$ tree ~/.ssh
/Users/naomik/.ssh
├── config
├── github.com
│   ├── naomik.pem
│   ├── someusername.pem
├── known_hosts
├── naomi.makes.software
│   ├── naomi.pem
├── somedomain.com
│   ├── someuser.pem
└── someotherdomain.org
    └── someuser.pem

そして、ここに私の対応する/.ssh/configファイルがあります。明らかにgithubのものは、githubに関するこの質問に答えることに関連していますが、この答えは、任意の数のサービス/マシンでssh IDを管理する知識を身に付けることを目的としています。

Host github.com-naomik
  HostName github.com
  User git
  IdentityFile ~/.ssh/github.com/naomik.pem

Host github.com-someuser
  HostName github.com
  User git
  IdentityFile ~/.ssh/github.com/someusername.pem

Host naomi.makes.software
  User naomi
  IdentityFile ~/.ssh/naomi.makes.software/naomi.pem

Host somedomain.com
  HostName 162.10.20.30
  User someuser
  IdentityFile ~/.ssh/somedomain.com/someuser.pem

Host someotherdomain.org
  User someuser
  IdentityFile ~/.ssh/someotherdomain.org/someuser.pem

PEMキーからSSH公開キーを取得する

上記のとおり、キーごとにoneファイルしかないことに気づきました。公開鍵を提供する必要がある場合、必要に応じて単純にgenerateします。

Githubがssh公開キーを要求した場合、このコマンドを実行して公開キーをstdoutに出力します–必要に応じてコピー/貼り付け

$ ssh-keygen -y -f someuser.pem
ssh-rsa AAAAB3NzaC1yc2EAAAA...

これは、キーをリモートマシンに追加するために使用するプロセスと同じです。 ssh-rsa AAAA...値は、リモートの~/.ssh/authorized_keysファイルにコピーされます


id_rsa/id_rsa.pubキーペアをPEM形式に変換する

それで、あなたはあなたのキーファイルを飼いならし、いくつかのファイルシステムの残骸を削減したいですか?キーペアをsinglePEMに変換するのは簡単です

$ cd ~/.ssh
$ openssl rsa -in id_rsa -outform pem > id_rsa.pem

または、上記の例に従って、id_rsa -> github-mainuserおよびid_rsa.pub -> github-mainuser.pubの名前を変更しました–そう

$ cd ~/.ssh
$ openssl rsa -in github-mainuser -outform pem > github-mainuser.pem

これが正しく変換されたことを確認するために、generated公開キーが古い公開キーと一致することを確認する必要があります。

# display the public key
$ cat github-mainuser.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA ... R++Nu+wDj7tCQ==

# generate public key from your new PEM
$ ssh-keygen -y -f someuser.pem
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA ... R++Nu+wDj7tCQ==

github-mainuser.pemファイルができたので、古いgithub-mainuserおよびgithub-mainuser.pubファイルを安全に削除できます。PEMファイルのみが必要です。必要なときに公開鍵を生成するだけです^ _ ^


PEMキーを最初から作成する

秘密/公開キーのペアを作成し、thenを単一のPEMキーに変換する必要はありません。 PEMキーを直接作成できます。

newuser.pemを作成しましょう

$ openssl genrsa -out ~/.ssh/newuser.pem 4096

SSH公開鍵の取得は同じです

$ ssh-keygen -y -f ~/.ssh/newuser.pem
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACA ... FUNZvoKPRQ==
51
user633183

〜/ .ssh/configでgithub.comに異なるホストエイリアスを作成し、各ホストエイリアスに独自のsshキーを与えることで、混乱することなく複数のgithubアカウントを簡単に使用できます。これは、github.comが常にgitであるユーザーごとではなく、接続に使用していたsshキーによって区別されるためです。自分のホストエイリアスを使用して、リモートの発信元を設定するだけです。」

上記の要約は、下記のブログ投稿へのコメントのおかげです。

私はこの説明が最もわかりやすいと思いました。少なくとも2012年4月現在、私にとってはうまくいきます。

http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and-multiple-accounts/

23
mishaba

http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and-multiple-accounts/ での詳細はmishabaの仕事に非常にリンクされています私にとっても.

そのページから:

$ touch ~/.ssh/config

次に、そのファイルを次のように編集します(アカウントごとに1エントリ)。

#Default GitHub
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa

Host github-COMPANY
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_COMPANY
22
Matthew Skelton

シェルスクリプトを使用して、 "アクティブ"にしたいアカウントに切り替えます。基本的には、最初からやり直して、1つのアカウントを正しく設定して機能させ、次にこれらのファイルを適切な接頭辞を付けた名前に移動します。それ以降は、コマンド "github"または "gitxyz"を使用して切り替えることができます。

# my github script
cd ~/.ssh

if [ -f git_dhoerl -a -f git_dhoerl.pub -a -f config_dhoerl ]
then
    ; 
else 
    echo "Error: missing new files"
    exit 1
fi 

# Save a copy in /tmp, just in case
cp id_rsa /tmp
cp id_rsa.pub /tmp
cp config /tmp
echo "Saved old files in /tmp, just in case"

rm id_rsa
rm id_rsa.pub
rm config
echo "Removed current links/files"

ln git_dhoerl id_rsa
ln git_dhoerl.pub id_rsa.pub
ln config_dhoerl config

git config --global user.email "dhoerl@<company>.com"
git config --global github.user "dhoerl"        
git config --global github.token "whatever_it_is"

ssh-add -D

私はこれでうまくいった。適切な設定がないと(gitを使用しているため)、Xcodeで実行スクリプトを作成しました(Macユーザー向け)。

依存関係の後に配置されたスクリプトを実行します(シェルとして/ bin/kshを使用)。

if [ "$(git config --global --get user.email)" != "dhoerl@<company>.com" ]
then
    exit 1
fi

編集:以下の@naomikによるコメントに対処するために、新しいファイルの存在と古いファイルを/ tmpにコピーするテストを追加しました。

11
David H

ありがとうuser1107028:

HTTPSを使用する:

リモートURLをhttpsに変更します。

git remote set-url Origin https://[email protected]/USERNAME/PROJECTNAME.git そして、行ってもいいです:

gitプッシュ

複数のgithubアカウントを使用するとき、これが最良の方法だと思いました。私は1つのアカウントだけを使うことはできません、それはちょうど可能ではありません、そして私は私がしたことに関係なくSSHを振る舞わせることができませんでした。 Idは答えを投票しましたが、私は十分なポイントを持っていません - 私は清潔で簡単な解決策を必要とする人々のためにこの単純な回避策を認めたいと思いました。それは初めてうまくいったし、私がもっと苦労する時間を節約した。

8
Boshy
  • 〜/ .sshに行きます
  • Configという名前のファイルを作成します(拡張子はありません)。
  • 設定ファイルを開き、以下のコードを追加してください。 (アカウントに合わせて変更してください)

    1. アカウント1

      # account_1
      Host gitlab.com-account_1
      HostName gitlab.com
      User git
      PreferredAuthentications publickey
      IdentityFile ~/.ssh/id_rsa_account_1
      
    2. アカウント2

      # Account2
      Host gitlab.com-Account2
      HostName gitlab.com
      User git
      PreferredAuthentications publickey
      IdentityFile ~/.ssh/id_rsa_Account2
      
    3. アカウント3

      # Account_3
      Host github.com-Account3
      HostName github.com
      User git
      PreferredAuthentications publickey
      IdentityFile ~/.ssh/id_rsa_Account_3
      
  • 次のようにリモートURLを追加します

    1. アカウント1

      git remote add Origin [email protected]_1:group_name/repo_name.git
      
    2. アカウント2

      git remote add Origin [email protected]:group_name/repo_name.git
      
    3. アカウント3

      git remote add Origin github.com-Account3:github_username/repo_name.git
      

IdentityFileの名前がsshキーの生成中に作成したものと同じであることを確認してください。

8
Pranav V R

この答えは初心者(none-git gurus)に対するものです。私は最近この問題を抱えていましたが、たぶんそれが私にすぎませんでしたが、ほとんどの答えはgitの理解が必要です。このスレッドを含むいくつかのスタックオーバーフローの答えを読んだ後、GitHubアカウントを簡単に切り替えるために必要な手順があります(例:2つのGitHubアカウント、github.com/personalgitHub.com/work):

  1. 既存のsshキーをチェックする:ターミナルを開き、このコマンドを実行して既存のsshキーを表示/一覧表示しますls -al ~/.ssh
    拡張子が.pubのファイルはsshキーなので、personalアカウントとworkアカウントには2つ必要です。 1つしかない場合、またはない場合は、他の方法で生成する時間を省略してください。

    - sshキーを生成する:githubにログインし(個人用または仕事用のどちらか)、 Settings に移動してコピーします関連付けられている電子メール.
    ターミナルに戻ってssh-keygen -t rsa -C "the copied email"を実行すると、次のように表示されます。

    公開/秘密のrsa鍵ペアを生成しています。
    キーを保存するファイルを入力してください(/.../.ssh/id_rsa):


    id_rsa は、間もなく生成されるsshキーのデフォルト名なので、パスをコピーしてデフォルトの名前を変更します。仕事用アカウントを生成する場合は/.../.ssh/id_rsa_work。パスワードを入力するか、単に無視するように入力してください。キーのランダムアート画像はで、その画像は次のようになります。行った。
    あなたの2番目のgithubアカウントに対してもう一度この手順を繰り返します。上書きを避けるために、正しい電子メールアドレスと別のSSHキー名(例:id_rsa_personal)を使用してください。
    この段階で、もう一度ls -al ~/.sshを実行すると、2つのsshキーが表示されます。
  2. sshキーをgitHubアカウントに関連付ける:次のステップは、sshキーの1つをコピーして実行しますが、自分のsshキー名をpbcopy < ~/.ssh/id_rsa_work.pubに置き換え、id_rsa_work.pubをあなたが呼び出したものに置き換えます。
    これでsshキーがクリップボードにコピーされました。githubアカウントに戻ります[コピーしたsshキーがid_rsa_workの場合は、仕事用アカウントにログインしていることを確認してください]。
    設定 - SSHおよびGPGキーをクリックして新しいSSHキーボタンをクリックします( New GPGは使用しません)キー btw:D)
    このキーにタイトルを付けてキーを貼り付け、[Add SSH key]をクリックします。 sshキーの追加に成功したか、それが問題ないことに気付いたか(または New GPG key の代わりに選択したためエラーになりました)新しいSSHキー:D)。
  3. sshキーをgitHubアカウントに関連付ける:2番目のアカウントに対して上記の手順を繰り返します。
  4. グローバルgit設定を編集します。最後のステップは、グローバル設定ファイルがすべてのgithubアカウントを認識するようにすることです(いわば)。
    このグローバルファイルを編集するにはgit config --global --editを実行します。これがvimを開いて使用方法がわからない場合は、iを押して挿入モードに入り、次のようにファイルを編集してescを押して:wqを押して挿入を終了します。モード:

    [inside this square brackets give a name to the followed acc.] name = github_username email = github_emailaddress [any other name] name = github_username email = github_email [credential] helper = osxkeychain useHttpPath = true

これで、リポジトリからプッシュまたはプルしようとしたときに、どのGitHubアカウントをこのリポジトリにリンクさせるのか、一度だけ確認するように求められます。ローカル設定はこのリンクを記憶し、グローバル設定は記憶しません。毎回グローバル設定を編集する必要なしに、異なるアカウントにリンクされている異なるリポジトリで。

8
Lukas

混乱を避けるための、より簡単で簡単な修正.

Windowsユーザーが異なるプロジェクトに複数または異なるGitアカウントを使用するため。

次の手順に従ってください:[コントロールパネル] - [資格マネージャの検索]をクリックします。次に、[資格情報マネージャ] - > [Windows資格情報]に移動します。

それではGeneric Credentials Headingの下のgit:https // github.comノードを削除してください。

これにより、現在の認証情報が削除されます。今、あなたはそれがユーザ名とパスワードを尋ねるgit pullを通してどんなプロジェクトでも追加することができます。

他のアカウントで問題が発生した場合も、同じ手順を実行してください。

ありがとう

画像を参照

3
Raja Shakir

複数のアカウント用に複数のSSHキーを作成する以外に、同じアカウントの電子メールを使用して各プロジェクトにコラボレータを追加し、パスワードを永続的に保存することも検討できます。

#this store the password permanently
$ git config --global credential.helper wincred

私は複数のアカウントに異なるEメールを設定してから、同じユーザーとEメールを各アカウントに共同編集者の1人として入れました。これにより、SSHキーを追加したり、別のユーザー名に切り替えたりしないですべてのアカウントにアクセスし、認証のために電子メールを送信できます。

2
Chetabahana

私はこの宝石が非常に有用であることがわかりました:sshwitch

https://github.com/agush22/sshwitch
http://rubygems.org/gems/sshwitch

SSHキーを消すのに役立ちます。最初にすべてをバックアップすることを忘れないでください。

また、コミットに正しいEメールアドレスが関連付けられていることを確認するために、〜/ .gitconfigファイルに正しいEメールアドレスがあることを確認しました。

2
agsdot

最も簡単で直接的なアプローチ(私見) - 設定ファイルがないことで面倒なことはあまりない

別のSSHキーを作成するだけです。

新しい作業用GitHubアカウントを持っているとしましょう。新しいキーを作成してください。

sh-keygen -t rsa -C "email@work_mail.com" -f "id_rsa_work_user1"`

今、あなたは古いものと新しいものを持っているはずです、それらを見るために、実行してください:

ls -al ~/.ssh

あなたは一度だけ上記を実行する必要があります。

これからは、2つを切り替えるたびに、ただ実行してください。

ssh-add -D
ssh-add ~/.ssh/id_rsa_work_user1 #make to use this without the suffix .pub

古いものに切り替えるには、もう一度実行します。

 ssh-add -D
 ssh-add ~/.ssh/<previous id_rsa>
1
Kohn1001

各リポジトリの認証情報を使用して、Windows用にこれを考え出しただけです。

cd c:\User1\SomeRepo
git config --local credential.https://github.com.user1 user1
git config --local credential.useHttpPath true
git config --local credential.helper manager
git remote set-url Origin https://[email protected]/USERNAME/PROJECTNAME.git

資格情報のフォーマット。 https://github.com 。信任状ヘルパーに信任状のURLを伝えます。 'useHttpPath'は、信任状マネージャーに信任状用のパスを使用するように指示します。 useHttpPathが省略された場合、認証情報マネージャは https://github.com の認証情報を1つ保存します。それが含まれている場合は、クレデンシャルマネージャが複数のクレデンシャルを保存します。これが私が本当に望んでいたことです。

1
Craig - MSFT

他の答えとは異なり、少数のステップを使用して2つの異なるgithub同じマシンからのアカウント、私にとっては2ステップで動作しました。

あなたがする必要があります:

1)~/.sshの下の各アカウントに対してSSHの公開鍵と秘密鍵のペアを生成し、

2)生成されたpublicキーをSettings >> SSH and GPG keys >> New SSH Keyの下のそれぞれのアカウントに追加します。

SSH公開鍵と秘密鍵のペアを生成するには、次のコマンドを使用します。

cd ~/.ssh
ssh-keygen -t rsa -C "[email protected]" -f "id_rsa_WORK"
ssh-keygen -t rsa -C "[email protected]" -f "id_rsa_PERSONAL"

上記のコマンドの結果として、あなたのworkアカウント用にid_rsa_WORKid_rsa_WORK.pubファイルが作成され、あなたのためにid_rsa_PERSONALid_rsa_PERSONAL.pubが作成されます。personalaccount(例:github.com)。

作成したら、各パブリック(*.pub)ファイルからコンテンツをコピーし、各アカウントに対して手順2を実行します。

PS:2つのアカウントのホスト名が異なる場合は、他の回答で説明したように、~/.ssh/configファイルの下に各gitアカウントのHostエントリを作成する必要はありません。

0
Sahil Chhabra

個人用と仕事用に2つの異なるアカウントを維持する必要はありません。実際、Githubはあなたが単一のアカウントを管理していることを勧め、両方をマージするのを助けます。

複数のアカウントを管理する必要がないと判断した場合は、下のリンクをたどってマージしてください。

https://help.github.com/articles/merging-multiple-user-accounts/

0
Eric Blair

もう1つの簡単な方法は、GithubデスクトップでアカウントAを使用し、Github KrakenでアカウントBを使用しているときのように、複数のデスクトップアプリケーションを使用することです。

0
Jet Yu

もしあなたが WSL をインストールしているのなら、WSL用とWindows用の2つの別々のgitアカウントを持つことができます。

0
Almenon