1台のコンピュータが常に1つのアカウントを見る複数のアカウントをGithub

これはおそらくダップではありません。私はStackOverflowの多くの同様の問題を読んだが、この問題は読んでいない。

私はUbuntu Linuxで複数のgitアカウントを使用しようとしており、2番目のアカウントからプッシュしようとすると、最初のアカウントのユーザー名を使用していると考えられます。

$ git push -u origin master
ERROR: Permission to /.git denied to .

私は最初に複数のSSHキーメソッドを試しました。上記のエラーが発生したら、ローカルマシン上に全く新しいユーザーを作成し、そのユーザーとしてログインし、ローカルrepo(最初のプッシュ)を再作成して再試行しました。同じエラー。私のローカル.configはユーザーを表示し、〜/ .gitconfigも表示します。

何か案は?

私がやります: ssh @localhost ssh -vvv -T [email protected]

私はこの興味深い結果を得た。私のアカウントで鍵が見つかったようです。しかし、どういうわけか私のアカウントの鍵を使っています。本当にアクセスできないはずです。


debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /home//.ssh/known_hosts:1
debug2: bits set: 513/1024
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: Wrote 16 bytes for a total of 1015
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug3: Wrote 48 bytes for a total of 1063
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key:  
debug2: key:  
debug2: key: /home//.ssh/identity ((nil))
debug2: key: /home//.ssh/id_rsa ()
debug2: key: /home//.ssh/id_dsa ((nil))
debug3: Wrote 64 bytes for a total of 1127
debug1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred gssapi-keyex,gssapi-with-mic,gssapi,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: 
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1495
debug1: Authentications that can continue: publickey
debug1: Offering public key: 
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1863
debug1: Remote: Forced command: gerve 
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp 
debug3: sign_and_send_pubkey
debug3: Wrote 640 bytes for a total of 2503
debug1: Remote: Forced command: gerve 
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug3: Wrote 128 bytes for a total of 2631
debug2: callback start
...
7
VM全体(act1は存在しない)で全体をやり直してしまったのですが、それは間違いなく理想的です:-(
追加された 著者 AndrewStone,

4 答え

これは、ssh-agentがsshキーをキャッシュする(ファイルを削除することさえできますが、キャッシュがクリアされるまでsshが正常に接続できるようになります)、IdentityFileで指定されたものよりもキャッシュされたキーに優先順位を付けます。次のファイルを実行すると、どのファイルがキャッシュされているかを確認できます。

ssh-add -l

各接続の.ssh/configにIdentitiesOnly "yes"を含めることによって、ssh-agentにキャッシュを無視させることができます:

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

Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_dsa_work
  IdentitiesOnly yes

More information here: http://sealedabstract.com/code/github-ssh-with-multiple-identities-the-slightly-more-definitive-guide/

このことを発見するまでにかなりの時間がかかりました。誰かを助けてくれることを願っています。

10
追加された
これは、巨大で巨大なヘルプフィルです。これはすぐに私の問題を解決しました。
追加された 著者 AKWF,

この回答の私の前提を述べるために、あなたが本当にやりたいことがGitHubに異なるGitHubユーザとして識別されるようにプッシュできるように、質問のタイトルから聞こえます。

そのような場合は、SSH経由で異なるGitHubユーザーにプッシュするために、システムに複数のユーザーを作成するべきではありません。異なるIDファイルを指定する〜/ .ssh/config github.com の2つのエイリアスを設定するには、をご覧ください。たとえば、〜/ .ssh/config に次のようなものがあるとします。

Host github-act1
  HostName github.com
  User git
  IdentityFile /home/whoever/.ssh/id_rsa.act1

Host github-act2
  HostName github.com
  User git
  IdentityFile /home/whoever/.ssh/id_dsa.act2

次に、2つのリモコンをリポジトリに追加することができます:

git add remote act1 [email protected]:whoever/whatever.git
git add remote act2 [email protected]:whoever/whatever.git

次に、1人のユーザーとしてプッシュしたい場合は、次の操作を実行できます。

git push act1 master

...または第2のアカウントとして:

git push act2 master
3
追加された
@ AndrewStone:2人目のユーザーとしてどのようにログインしていますか? echo $ HOME は2回目のユーザーとしてログインしたときに表示されるものは何ですか?
追加された 著者 Mark Longair,
このメソッドは私のために素晴らしい仕事をした。
追加された 著者 Nick,
はい、私は最初にその方法を試しました。同じエラー。だから私はいくつかのSSHの設定問題があったと思って、複数のUNIXアカウントの方法に行きました...
追加された 著者 AndrewStone,
ssh @localhost。/home/を表示します。 4日間の停電に遅れて申し訳ありません
追加された 著者 AndrewStone,
debug2: key:  
debug2: key:  
debug2: key: /home//.ssh/identity ((nil))
debug2: key: /home//.ssh/id_rsa ()
debug2: key: /home//.ssh/id_dsa ((nil))

ひどく疑わしい。あなたのホームディレクトリは単に/home/ですか?複数のユーザが同じホームディレクトリを持っている場合、sshが両方のユーザに同じ鍵を見つけても驚くことはありません。結果を確認する

echo $HOME

各ユーザーとしてログインしています。彼らは別のディレクトリを指すべきです。

0
追加された

.gitフォルダとその内容へのアクセス許可を見てください。 ssh github.com -vvvv でgithubに渡されているSSH鍵を確認してください。

0
追加された
あなたは間違った家のdirを持っているかもしれません。 pwd〜とは何でしょうか?
追加された 著者 Adam Dymitruk,
ssh [email protected] -vvvvは "Hi "(間違ったアカウント)と言っています
追加された 著者 AndrewStone,
何らかの理由でsshが他のユーザーの行動に行き着いて見ています。 debug2:key:/home//.ssh/id_rsaと「remote:forced command:gerve 」と出力します。
追加された 著者 AndrewStone,