GitHubユーザー、
私はgithubの初心者で、gitのセットアップに問題があります。 githubに異なるユーザーの2つのアカウントがあり、システムにgitを2回セットアップしました
最初/。sshフォルダー(通常どおり)(最初のアカウントでコピーしたid_rsaを含む)
2番目/。ssh/newフォルダー(2番目のアカウントにコピーされたid_rsaを含む)
プッシュ時に、sshキーを切り替えるにはどうすればよいですか?
私が2番目のアカウントをプッシュしたい場合、.ssh/newの代わりに.sshキーを使用し、エラーが発生するためです。
私がここで何か間違っていることが理解されたら、私を正してください。
ありがとう。
(私はこれを重複の可能性があるとして閉じるように投票しましたが、とにかく同様の回答を追加することもできます。)
SSHトランスポートを使用する場合、GitHubは、認証に使用するSSHキーに基づいてユーザーとして識別します。したがって、gitが1つのリポジトリに1つのSSHキーを使用し、もう1つのリポジトリに別のSSHキーを使用していることを確認する必要があります。
私はそれを仮定します:
user1
_というGitHubアカウントがあり、そのアカウントにローカル秘密鍵_/home/whoever/.ssh/id_rsa
_に対応する公開鍵を追加しました。 _user1
_としてアクセスしたいリポジトリがGitHubの_user1/whatever
_であるとします。user2
_という2番目のGitHubアカウントがあり、そのアカウントにローカル秘密鍵_/home/whoever/.ssh/new/id_rsa
_に対応する公開鍵を追加しました。 _user2
_としてアクセスするリポジトリがGitHubの_user2/whatever
_であるとします。これに対処する最も簡単な方法は、リポジトリごとに新しい「リモート」(つまり、リモートリポジトリのニックネーム)を作成することです。この場合、ホスト名は各リモートのURLにあり、実際には_~/.ssh/config
_。 (その構成ファイルが存在しない場合は、作成する必要があります。)
たとえば、_~/.ssh/config
_ファイルの1つのエントリは次のようになります。
_Host github-as-user1
HostName github.com
User git
IdentityFile /home/whoever/.ssh/id_rsa
_
次に、_gh-user1
_というリモートを追加できます。
_git remote add gh-user1 git@github-as-user1:user1/whatever.git
_
...次に、master
ブランチを_user1/whatever
_キーを使用してGitHubのリポジトリ_~/.ssh/id_rsa
_にプッシュする場合は、次のようにします。
_git Push gh-user1 master
_
他のユーザー(_user2
_)として2番目のリポジトリにプッシュするには、2番目のエイリアスを_~/.ssh/config
_ファイルに追加する必要があります。例えば:
_Host gh-as-user2
HostName github.com
User git
IdentityFile /home/whoever/.ssh/new/id_rsa
_
次に、別のユーザーとしてその2番目のリポジトリーにプッシュするには、次のようにします。
_git Push gh-user2 master
_