1. ホーム
  2. git

[解決済み] Gitの有名な「ERROR: .git へのアクセスが拒否されました" と表示されます。

2022-05-03 02:31:36

質問

ググってみたところ https://help.github.com/en/articles/connecting-to-github-with-ssh とか、いろいろな、ガイドがあります。私は、以下のことができません。 git push -u origin master または git push origin master (同じコマンド)です。

私は少なくとも2年ほど前からgitのアカウントを持っています。レポの作成に成功し push -u origin master ノートパソコンでは問題ないのですが、このデスクトップでは問題があります。

試したのは以下の通りです。

1. gitのユーザー名を設定しました

2. git user emailを設定しました。

3. githubのアカウントページに自分の/home/meder/.ssh/id_rsa.pubの中身をアップロードしました。空白を貼り付けていないことを確認しました。

4. この内容で ~/.ssh/config を作成しました。

  Host github.com
  User git
  Hostname github.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa

.sshを700に、id_rsaを600にchmodしています。

5. を追加しました。 適切な リモートオリジン 誤字脱字のないように : git remote add origin [email protected]:medero/cho.git

6. 5を確認するために、私の.git/configを以下に示します。ディレクトリは 正しい であり、別のディレクトリではありません。

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = [email protected]:medero/cho.git

7. ssh [email protected] -v 認証に成功しました。

8. 一つ不思議なのは、挨拶してくれたユーザー名が t が付加されています。私のgithubでのユーザー名は medero ではなく medert .

mederotさん、こんにちは。あなたは成功しました 認証されましたが、GitHubは はシェルアクセスを提供します。

9. 私は ではない プロキシやファイアウォールの背後にある

10. キーが提供され、以下の出力があります。 -v :

<ブロッククオート
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /home/meder/.ssh/known_hosts:58
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
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 public key: /home/meder/.ssh/id_rsa
debug1: Remote: Forced command: gerve mederot
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: { some stuff, dont know if i should share it

debug1: Remote: Forced command: gerve mederot
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).

11. 以下は、私が使用したコマンドです。

mkdir cho
git init
touch README
git add README
git commit -m 'test'
git remote add origin [email protected]:medero/cho.git
git push -u origin master

12. SSHキーを新規に作成したくないのですが。

13. sshを使ってgit cloneし、編集、コミット、git pushを行うと、全く同じものが表示されます。

14. 実際のエラーはこちらです。

$ git push
ERROR: Permission to medero/cho.git denied to mederot.
fatal: The remote end hung up unexpectedly

15. githubのユーザー名とgithubトークンを設定しました。

$ git config --global github.user medero $ git config --global github.token 0123456789yourf0123456789token システム上のすべての git インスタンスに対して GitHub トークンを設定します。

16. 私のgithubユーザー名は、以下の通りではありません。 mederot また、私の github トークンはアカウントページで正しく表示されています(最初の2文字と最後の2文字が検証されています)。

17. 16を確認すると、~/.gitconfigには

[github]
    token = mytoken...
    user = medero

18. した。 ssh-key add ~/.ssh/id_rsa それが必要なら...





THEORIES

ssh認証を受けると、ユーザーの挨拶が mederot でなく medero これは私のアカウントです。私のgithubアカウントの何かが間違ってキャッシュされている可能性はありませんか?

また、ローカルの ssh のキャッシュが変なのではと疑っています。 mv ~/.ssh/id_rsa KAKAmv ~/.ssh/id_rsa.pub POOPOO とする。 ssh [email protected] -v でも、まだ認証されるし、/home/meder/.ssh/id_rsa をリネームしても、それが提供されると言っています。これはキャッシュされている必要があるのでしょうか?

どうすればいいですか?

ステップ18では、次のような意味だと思います。 ssh-add ~/.ssh/id_rsa ? もしそうなら、これで説明がつきます。

mv ~/.ssh/id_rsa KAKA と mv ~/.ssh/id_rsa.pub POOPOO, and do ssh [email protected] -v, it still Authenticates me and says it serves my /home/meder/.ssh/id_rsa when I rename it? これは、キャッシュされている必要があります?

... ssh-agent はキーをキャッシュしています。

GitHubを見てみると メデロ というアカウントを作成しました。 本当にあなたとは関係ないのでしょうか? GitHub は、同じ SSH 公開鍵をふたつのアカウントに追加することを許可していないはずです。 [email protected]:... のURLでは、SSHキーを元にユーザーを特定しています。 (これは許されるべきでないことが確認されています。 ここで .)

ということで、(可能性の高い順に)以下のいずれかを疑っています。

  1. 以前にmederotのアカウントを作成し、そこにSSHキーを追加した。
  2. 誰かがあなたの公開鍵のコピーを取得し、それを mederot GitHub アカウントに追加しました。
  3. GitHub に恐ろしいバグがあります。

もし1が当てはまらないのであれば、GitHubに報告し、2か3について調べてもらうことになります。

もっと見る :

ssh-add -l 複数のIDが存在するか確認する。 もしそうなら、ssh-add -d "そのキーファイル"で削除してください。