Gitエラー:「正しいアクセス権があり、リポジトリが存在することを確認してください」


97

WindowsでTortoiseGitを使用しています。標準のWindowsエクスプローラーのコンテキストメニューからクローンを作成しようとすると、次のエラーが発生します。

正しいアクセス権があり、リポジトリが存在することを確認してください

より正確には、ターミナルのスナップショットは次のとおりです。

git.exe clone --progress -v "git @ arobotdev:\ git \ AlfaRobot.git" "C:\ Work \ AlfaRobot"

'C:\ Work \ AlfaRobot'への複製...
アクセスが拒否されました。もう一度お試しください。
許可が拒否されました。もう一度やり直してください。
権限が拒否されました(公開鍵、パスワード)。
致命的:リモートリポジトリから読み取れませんでした。

正しいアクセス権が
あり、リポジトリが存在することを確認してください。

gitは正常に終了しませんでした(終了コード128)(21450 ms @ 19.09.2014 10:36:58)

gitを正しく動作させるにはどうすればよいですか?


1
ssh keygenを生成して追加
Raja Simon

Shell(またはWindowsのGit Bash)を使用してSSHキーを作成する:$ ssh-keygen -t rsa -C "youremail@example.com"
Belter

常にパスワードを入力する必要がないため、リポジトリをgit@github.comアドレスに変更した後にそのエラーが発生しました。原因となった本当の間違いは、githubに公開鍵を追加するのを忘れていたことです。
dasWesen

回答:


76

git URLが変更された可能性があります。次のコマンドを使用して、ローカルディレクトリのURLを変更します。

git remote set-url origin git@yourGitUrlHere

17
FYI githubがURLスキームを使用するようになりました:git remote set-url origin https://github.com/username/repository.git
RyPope 2017

2
@RyPope git(ssh)またはhttpsのいずれかのプロトコルを使用できます。それはあなたの望みです。githubにプロトコルgitとの両方が追加されましたhttps
Vishnu

@VishnuいただきましたXXXXXXX
244boy 2017年

@RyPope回答に変換
ishandutta2007

非常によくある間違いが私によって行われました。クリップコマンドを使用してコピーしましたxclip -sel clip < ~/.ssh/id_rsa.pubが、githubキー入力ボックスへの貼り付け中に、バックスペースを使用して最後の改行を削除しました。これにより、実際に公開キーが変更されました。したがって、最後の改行を削除せずに、常にssh公開鍵をそのままコピーして貼り付けてください。
Amreesh Tyagi

62

その問題はssh-agentにある可能性があります。sshキーはssh-agentで追加されていません。端末を使用して次の手順を適用する必要があります:-

  1. $ eval "$(ssh-agent -s)"

    エージェントPID 5867

  2. $ ssh-add

    /home/you/.ssh/id_rsaのパスフレーズを入力してください:[]追加されたID:/home/you/.ssh/id_rsa(/home/you/.ssh/id_rsa)

その後、それは動作します。


11
それでもクローン作成時にエラーが発生する:fatal: Could not read from remote repository.
IgorGanapolsky

デフォルトのid_rsaとは異なるキーを作成したので、うまくいきました。上記のコマンドssh-add -K〜/ .ssh / id_rsa_other_projectで追加する必要があります。
Nitesh 2018

ええ、これはまったく問題を修正しません。IDをsshに追加しても、毎回証明書のパスワードの入力を求められることはありません
DMcCallum83

乾杯。走れなかったbrew update。私が実行したときにssh-addコマンドを実行する前に、それが働きました。私はこれをいつも繰り返さないことを望みます。
nyxee 2019年

「ホストキーの検証に失敗しました。致命的:リモートリポジトリから読み取れませんでした。」というエラーが引き続き表示される :しかし、私のために修正された既知のホストの追加stackoverflow.com/questions/15214977/...
rickvianを

36

GITからクローンを取得する際に、SSHではなくHTTPSを使用してみてください。このURLを使用してクローンを取得します。ブランチのクローンを作成するには、Gitbase、Android Studioまたはその他のツールを使用できます。 ここに画像の説明を入力してください


34

私にとっては、マシンにSSHキーがないためでした。ローカルでSSHキーを確認します。

$ cat ~/.ssh/id_rsa.pub

これがSSHキーです。それをリポジトリのSSHキーに追加します。
gitlabで

プロファイル設定-> SSHキー

キーを追加します


7
あなたが言ったように私はキーを追加しましたが、それでもアクセス拒否メッセージが表示されます。助けてください
Jet

18

GithubがURLスキームを使用するようになりました

git remote set-url origin https://github.com/username/repository.git


9

ssh:経由でリポジトリのクローンを作成しようとしgit@arobotdev...ていますが、SSHキーがサーバーに正しく設定されていません。これには複数の理由があります。

  1. 公開鍵がユーザーgitのauthorized_keysファイルに保存されていない可能性があります
  2. 1が真でない場合、秘密鍵はHOMEDIRの.ssh /フォルダーに保存されません。
  3. 権限が正しく設定されていません

上記の3つすべてがgit@arobotdev:AlfaRobot.git 当てはまらない場合、私の唯一の結論は次のことを試すことです: AlfaRobot.gitがgitユーザーのHOMEDIRにあり、ユーザーgitのHOMEDIRにあるgitというフォルダー内にないと仮定します。


5

rsa.pub(つまり、生成された公開鍵)は、github >>設定>> ssh鍵ページに追加する必要があります。この公開鍵をrepository-settings >>デプロイメント鍵に追加していないことを確認してください。もしそうなら、ここからエントリを削除し、言及された最初の場所に追加します。

pub-private鍵のセットアップの詳細

それで動作します!


3
  1. 最初に確認したいのは、インターネット接続です。ただし、インターネットの問題では、リポジトリにアクセスできないことがほとんどです。

  2. ローカルとgithubの両方でsshが設定されていることを確認してください。方法を見る

  3. ssh git remoteを使用していることを確認してください。httpsのクローンを作成した場合は、次のgitコマンドを使用して、urlをssh urlに設定しますgit remote set-url origin git@github.com:your-username/your-repo-name.git

  4. sshを適切に設定したが機能しなくなった場合は、次のようにします。

    • eval "$(ssh-agent -s)"
    • ssh-add

    それでも問題が解決しない場合は、githubからsshを削除していないことを確認してください。sshがgithubから削除されている場合は、再度追加できます。を使用pbcopy < ~/.ssh/id_rsa.pubしてsshキーをコピーし、github ssh設定に移動して追加します。

常にsshを使用することをお勧めします。私がこれまでに使用したほとんどのチームでは、sshを使用しない限り、リポジトリ(ほとんどがプライベート)にアクセスできません。初心者にとっては難しいように見えるかもしれませんが、後でそれは非常に簡単で安全になります。


3

私はこの問題を抱えていましたが、自分のシステムのDNSアドレスが間違っていることがわかりました。ネットワークを確認してテストする

ssh -vvv git@bitbucket.org

そして、出力メッセージを読んでください。「gitまたはhgを使用してBitbucketに接続できます」と表示された場合。、 全て大丈夫。


こんにちは@アルバート、私は同じ問題に直面していますが、gitlab.comです。どのようにして問題を解決しましたか?
abiratsis

@AlexandrosBiratsis DNSを他のアドレスに置き換えます。opendnsまたはgoogle dnsを試してください。
アルベルト

2

別の問題として、インターネット接続が考えられます。多分当然ですが、私のwifiがダウンしていることを理解するのに数分かかりました:)


1
エラーメッセージによると、ここではインターネット接続に問題があるようではありません。
jbmusso 2015

2

これが私がこの問題を解決する方法です。Win7 / 10でBabun(mintty.exe)を使っていました。上記の多くの解決策を試しましたが、どれも機能しません。たぶん間違ったsshエージェントを使用していることに気づきecho $GIT_SSHましたPlink.exe。私が実際に期待したのはOpenSSHです。

だから、私は次のワンライナーを~/.zshrcファイルに追加します

注1:babunで直接実行することも
できます。注2:bashを使用する場合、構成ファイルは.bashrc

export GIT_SSH=$(which ssh)

そしてそれはうまくいきます!



2

sshの代わりにhttpsを試してください。クローンURLをコピーするプロジェクトのホームページからhttpsオプションを選択します。


2

以前は機能していたが突然機能しなくなった場合:

この問題は、ssh-agent再起動後も持続しない場合があるために発生する可能性があります。ssh-agentキーが追加されているかどうかを確認する必要があります。

ssh-add -l -E md5

次のような出力が得られた場合:

The agent has no identities.

それはssh-agentあなたの鍵を失ったことを意味します。その場合は、IDキーを再度追加するだけです。何かのようなもの:

ssh-add ~/.ssh/git_rsa

エラーが消えるはずです!


これは、別のアカウント用に別のsshを作成したときに発生したので、不足git_rsaしているものをリストに追加します
John

1

これは、VPN経由でgitリポジトリに接続している場合にも発生する可能性があります。組織のリソースへのアクセスに使用されるVPNに接続していることを確認してください。


1

プロジェクトをgitlabにアップロードしているときにこのエラーに遭遇しました。私はgitからクローンを作成しませんでしたが、代わりにプロジェクトをアップロードしました。コードをgitlabにプッシュするには、sshまたはhttpsを使用する2つの方法があります。httpsを使用する場合は、gitlabアカウントのユーザー名とパスワードを入力する必要があります。コードをgitにプッシュするには、次のコードを使用できます。

初めてGitにプッシュする

>$ cd
>$ mkdir .ssh;cd .ssh
>$ ssh-keygen -o -t rsa -b 4096 -C "email@example.com"

-Cパラメータはオプションです。複数ある場合は、キーの最後にコメントを付けて他のキーと区別します。これにより、id_rsa(秘密鍵)とid_rsa.pub(公開鍵)が作成されます。私たちは公開鍵を渡し、秘密鍵を保持しています。Gitlabのユーザー設定では、公開鍵をアカウント追加して、最終的にプッシュできるようにします

プロジェクトの場所(ディレクトリ)で以下のコマンドを使用します

git init

現在のディレクトリをGitリポジトリに変換します。これにより、.gitサブディレクトリが現在のディレクトリに追加され、プロジェクトのリビジョンの記録を開始できるようになります。

httpsパスを使用してプッシュ

git push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master

sshパスを使用してプッシュ

git push --set-upstream git@gitlab.com:Account_User_Name/Your_project_Name.git master

— set-upstream: gitに起点へのパスを伝えます。Gitが以前に現在のブランチをプッシュしている場合、それは起源がどこにあるか覚えています

master:これは、初期化時にプッシュしたいブランチの名前です


0

他の答えと同様に、https代わりに使用することがssh解決策でした。

可能な解決策の具体例を示すために回答を投稿します。このコマンドラインでリモートURLをHTTPSに変更したときに、bitbucketでこの問題を解決しました。

git remote set-url origin <bitbucket_URL>

その後、次のコマンドでコンテンツをリポジトリにプッシュできます。

git push -u origin --all

そして、Sourcetreeを使用することもできます


0

奇妙なことに、私は多くのリポジトリの1つでのみこのエラーを受け取りました。

私の問題は、以前の古いGitHub for Winがキーを保持していた新しいGitHubデスクトップをWindowsにインストールした後で~/.ssh/github_rsaあり~/.ssh/github_rsa.pub、新しいGitHub for Winがそれを期待している~/.ssh/id_rsaため、ソリューションは既存のプライベートキーとパブリックキーの名前を変更するだけでした。

~/.ssh/github_rsa -> ~/.ssh/id_rsa
~/.ssh/github_rsa.pub -> ~/.ssh/id_rsa.pub

その後、問題なく再びリポジトリにアクセスさせてください。



0

Ubuntuを使用しています

多くの回答を読んだ後、すでにgitアカウントにSSHキーを追加していてssh -T git@gitlab.com、それを使用してテストしてみても問題は解決しWelcome <my username>ませんが、それでもアクセス権がないことを通知し続けます。それから私はその理由を見つけました:

通常、rootユーザーでない場合は、sudoすべてのgitコマンドを実行する必要があります。

実行中sudo git clone <SSH....>(たとえば)。それはroot許可の下で実行されますが、SSHキーを作成するときに誤って通常のユーザーとして実行し、キーをに保存~/.ssh/id_rsaすると、絶対パスが解決されます/home/username/.ssh/id_rsa。そしてそれをするときsudo git clone ...それはSSHキーを探します/root/.ssh/id_rsa

なぜこれについて確信できるのか。gitがSSHキーを探す場所を確認します。次のコマンドを実行します:sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <your repository in SSH>。SSHキーを探す場所が表示されます。

だから私が提案する解決策は:

SSHキーを再作成し(この手順に従ってください)、sudo su最初のステップで実行しますが、その後は問題ありません。



0

非常によくある間違いが私によって行われました。クリップコマンドを使用してコピーしましたxclip -sel clip < ~/.ssh/id_rsa.pubが、githubキー入力ボックスへの貼り付け中に、バックスペースを使用して最後の改行を削除しました。これにより、実際に公開キーが変更されました。

したがって、最後の改行を削除せずに、常にssh公開鍵をそのままコピーして貼り付けてください。


0

接続を切断した後、会社のVPNで問題が発生しました。

コマンドを使用してgithubとの接続を確認してください ssh -vvvT git@github.com


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.