2016-08-02 7 views
0

私はgithubを2つの異なるアカウントから使います.1つはプロで、もう1つは個人的です。 gitのは、個人のアカウントに存在して私のレポにいくつかのコードをプッシュするとき、プロのアカウントのユーザー名とプッシュしようとしている2つのgithubユーザーアカウントを維持する

Gitのプッシュ原点マスターは言う:
Permission to X/abc.git denied to Y fatal: unable to access 'https://github.com/X/abc.git/': The requested URL returned error: 403

はしかし言う-vリモートgitの:
起源https://github.com/X/abc.git(フェッチ)
起源https://github.com/X/abc.git(プッシュ)

私はすでに
をチェックしています210 1-私のSSH鍵は個人アカウント内に存在
2- [email protected] -vのO/P:

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011 
debug1: Reading configuration data /etc/ssh_config 
debug1: /etc/ssh_config line 20: Applying options for * 
debug1: Connecting to github.com [192.30.253.112] port 22. 
debug1: Connection established. 
debug1: identity file /Users/akash.bansal/.ssh/id_rsa type 1 
debug1: identity file /Users/akash.bansal/.ssh/id_rsa-cert type -1 
debug1: identity file /Users/akash.bansal/.ssh/id_dsa type -1 
debug1: identity file /Users/akash.bansal/.ssh/id_dsa-cert type -1 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_6.2 
debug1: Remote protocol version 2.0, remote software version libssh-0.7.0 
debug1: no match: libssh-0.7.0 
debug1: SSH2_MSG_KEXINIT sent 
debug1: SSH2_MSG_KEXINIT received 
debug1: kex: server->client aes128-ctr hmac-sha1 none 
debug1: kex: client->server aes128-ctr hmac-sha1 none 
debug1: sending SSH2_MSG_KEXDH_INIT 
debug1: expecting SSH2_MSG_KEXDH_REPLY 
debug1: Server host key: RSA  16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 
debug1: Host 'github.com' is known and matches the RSA host key. 
debug1: Found key in /Users/akash.bansal/.ssh/known_hosts:77 
debug1: ssh_rsa_verify: signature correct 
debug1: SSH2_MSG_NEWKEYS sent 
debug1: expecting SSH2_MSG_NEWKEYS 
debug1: SSH2_MSG_NEWKEYS received 
debug1: Roaming not allowed by server 
debug1: SSH2_MSG_SERVICE_REQUEST sent 
debug1: SSH2_MSG_SERVICE_ACCEPT received 
debug1: Authentications that can continue: publickey 
debug1: Next authentication method: publickey 
debug1: Offering RSA public key: /Users/akash.bansal/.ssh/id_rsa 
debug1: Server accepts key: pkalg ssh-rsa blen 279 
debug1: read PEM private key done: type RSA 
debug1: Authentication succeeded (publickey). 
Authenticated to github.com ([192.30.253.112]:22). 
debug1: channel 0: new [client-session] 
debug1: Entering interactive session. 
debug1: Sending environment. 
debug1: Sending env LC_CTYPE = UTF-8 
PTY allocation request failed on channel 0 
Hi X! You've successfully authenticated, but GitHub does not provide shell access. 

3- Gitの設定user.name
X
4- Gitの設定
user.email X's email
5- Gitの設定は

[core] 
repositoryformatversion = 0 
filemode = true 
bare = false 
logallrefupdates = true 
ignorecase = true 
precomposeunicode = true 
[remote "origin"] 
url = https://github.com/X/abc.git 
fetch = +refs/heads/*:refs/remotes/origin/* 

PSを読み出しこのrepoディレクトリは、ローカルに作成された後、リモートディレクトリにリンクしようとしています。私はリモートディレクトリをクローンすると、すべて正常に動作します。 私に何が足りないのか教えてください。

+0

:それらはあなたがURL内のユーザー名を指定することを可能にするよう

また、あなたはまた、HTTPSのURLに切り替えることができます。あなたはgitのアカウントを持っていません。あなたはgithubのアカウントを持っています。 –

+0

はい、私の悪い.... – akash

+0

私はあなたがこれを働かせることができると確信していますが、私はそれを自分で行います、githubは個人的にも専門的にも**単一の**アカウントの使用をお勧めします。意味をなさない –

答えて

3

構成user.nameおよびuser.emailは、コミットを行う場合にのみ関係します。これはGitがあなたのコミットの作者とコミッターとしてコミットオブジェクトに書き込むものです。ただし、リモートリポジトリでの認証には影響しません。 Gitは実際には接続のトランスポート層によってのみ提供される認証の概念を持っていません。

あなたの場合、SSHを使用しています。 SSHはあなたを認証するために公開鍵/秘密鍵の組み合わせを使用します。デフォルトでは、SSHは~/.ssh/id_rsaにあるキーを使用しますが、それはあなたのログが確認するものでもあります:

debug1: Offering RSA public key: /Users/akash.bansal/.ssh/id_rsa 
debug1: Server accepts key: pkalg ssh-rsa blen 279 

キーがユーザーを認証するために使用されているように。おそらくあなたのプロフェッショナルアカウントに属しているので、GitHubはあなたの個人的なリポジトリへのアクセス権を与えずにプロのアカウントしか見ることができません。

これを変更するには、別のSSHキーを指定する必要があります。両方のキーが同じホスト(GitHub)をターゲットにするため、これは少し複雑です。あなたはこのためのSSH設定を設定することができます。

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

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

ことを行うのならば、あなたは個人でリポジトリX/abc.gitにアクセスするために、リモートURL [email protected]:X/abc.gitを使用することができます(あなたの公開鍵のパスを一致するように変更し)~/.ssh/configを作成し、内部に以下を入れて、それを行うために、キーと[email protected]:X/abc.gitプロのキーでアクセスできます。あなたはgitのとgithubの違いについてはかなり混乱しているようだ

https://[email protected]/X/abc.git 
https://[email protected]/X/abc.git 
+0

ビンゴ!それは動作する、私は個人のgithubアカウントにプライベートSSHキーを追加する必要があると思う – akash

+0

もちろん、それぞれのGitHubアカウントにあなたの両方のプロフェッショナルと個人のアカウントの** public **キーを追加する必要があります。 – poke

関連する問題