git:fatal:リモートリポジトリから読み取れませんでした


356

私のサイトを管理するためにhttp://danielmiessler.com/study/git/#websiteで gitを設定しようとしています。

手順の最後のステップに到達しました:git push website + master:refs / heads / master

win7でgit ming32コマンドラインを使用して作業しています

$ git push website +master:refs/heads/master
Bill@***.com's password:
Connection closed by 198.91.80.3
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

ここでの1つの問題は、プログラムがBill@***.comを探していることです。sshを介して自分のサイトに接続すると、別のユーザー名が使用されます(「abc」と言います)。したがって、これはabc@***.comになるはずです。もしそうなら、これを変更する方法がわからない、またはエイリアスの下でプッシュできるかどうか


1
私は同じ問題を抱えていましたが、このエラーはgitサーバーに到達できないか、「内部サーバーエラー」のような場合に発生することがあります。
Morteza Ziyae 2014年

2
最初に.git/configファイルを見て、すべてが正しいことを確認してください。間違ったset-urlとorigin値がありました。
mixdev 2017年

おそらくこれで問題が解決するでしょう:help.github.com/articles/connecting-to-github-with-ssh
Guy Avraham


.git / configと.ssh / configの正しい順序を教えてくれませんか... coz少し混乱しています。
gumuruh

回答:


134

リモートのURLの一部として、SSHがリモートシステムに送信するユーザー名を指定できます。@リモートホスト名の前に、ユーザー名の後にを付けます。

git remote set-url website abc@***.com:path/to/repo

3
ps、パスワードを追加する方法はありますので、入力し続ける必要はありませんか?
LDN

15
.git/configリモートurlパラメータを含むファイルを編集します
Sayanee

@ user61629:パーティーに遅れるのはわかっていますが、パスワードの代わりに秘密鍵と公開鍵のペアを使用することを検討してください。
code_dredd

どのユーザー名ですか?コンピューターのユーザー名またはgithubのユーザー名?
エージェントゼブラ2017年

11
Githubの場合、常にユーザー名を使用しますgit。例:git@github.com:mayoff/uiimage-from-animated-gif.gitGithubは、送信するSSHキーを確認することで、自分の身元を把握します。
rob mayoff 2017年

190

sshキーがsshエージェントから削除された可能性が高い

ssh-add ~/.ssh/id_rsa

id_rsaはgit repoに関連付けられたsshキーです


7
これは私のために働いた!〜/ .ssh / configファイルを構成して、ホストごとに異なるキーを使用するように長い時間を費やしましたが、このファイルに問題があると思いました。結局、適切なホストに適切なキーを使用している必要がありますが、そのキーは「削除」されていました。そのためssh-add ~/.ssh/theKeyInQuestion、このリポジトリを使用して再起動し、キーが削除されたこと、または「削除」が何を意味するのかわからなかったが、少なくとも再度認証を受けることができた。SSHは、認証の問題に何ヶ月も対処した後でも、私にとっては完全な謎です。sshエージェントの問題はもう1つ注意する必要があります!
Alex Bollbach 2017

おかげでたくさん..これは、GitLabアカウントにSSHキーを作成、削除などを試みた後、ようやくうまくいきました。
Bms bharadwaj

これで私の問題は解決しました。新しく生成されたsshキーがサーバーに追加されました。このキーを追加する必要があります!!
Kashan

1
これで解決しました。理由はわかりません。以前は機能していましたが、突然動作しなくなりました。エージェントからキーを削除するプロセスはありますか?
ミゲルスティーブンス

なぜそれが起こるのですか?それは一日中機能しましたが、夕方には機能しなくなりました。この答えは役に立ちました。
Andrey Semakin

130

あなたが正しいURLを持っていることを確認してください .git/config

url = git@github.com:username/repo.git

最初のプッシュの場合は、正しいアップストリームを設定する必要があります

$ git push -u origin master

次の方法で、どのキーが使用されているかを確認できます。

$ ssh -vvv git@github.com

返信には次のようなものが含まれます。

debug1: Next authentication method: publickey
debug1: Offering RSA public key: ~/.ssh/id_rsa
...
You've successfully authenticated, but GitHub does not provide shell access.

また~/.ssh/config、たとえばエイリアスに基づいて、sshのルールを定義することもできます。

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

   Host git
      HostName github.com 
      User git
      IdentityFile "~/.ssh/some_other_id"

エイリアスごとに異なるポートへの接続、異なるユーザー名の使用などを設定できます。


1
ありがとうございました!!ある時点でリポジトリを複製すると、urlhttps://github.com/user/repo.git(なしgit@github.com)に設定されたため、SSHキーの使用が拒否されました。多分それは私がもともとWindowsのGIthubを使ってそれをクローンしたからでしょうか(?)
Jedidja '30

私は変更する必要url = ssh://github.com/RaphaelBossek/dev-atlassian-jira-proman.giturl = ssh://git@github.com/RaphaelBossek/dev-atlassian-jira-proman.gitあり、それは再び機能しました
Raphael Bossek

ダムニット、あなたは素晴らしい。私は他の多くの解決策を試しました。私のURLはhttps:でもありました:(
agrublev

-vvvヒントは、私のために役に立ちました。「XXX.XXX.XXX.Xポート22によって接続が閉じられました」というメッセージが表示されます。
Ryan

ああ、DeployHQは「のBitbucketは現在、マイナーなサービスの問題が発生している。詳細については、自分のステータスページをご確認ください。言うstatus.bitbucket.org」ビンゴ。
Ryan

123

少し前に同じ問題に直面していました...

私の.git / configには

url = git@github.com:manishnakar/polymer-demo.git

に置き換えました

url = https://github.com/manishnakar/polymer-demo.git 

そしてそれは今動作します:)


8
どうしてこれが上位にならないのですか?git @ githubは完全に動作しません
hlitz

3
リポジトリの所有者がsshキーを設定していない場合、この問題が発生する可能性があります。示されている修正は、https代わりに使用するか、リポジトリの所有者を設定することですssh
RyanNerd

@smilehamこれにより、spoベースの認証からhttpsプロトコルへのレポとの遠いリンクが切り替わります(必要に応じて、usr / pwdのプロンプトが表示されます)
Vincent Chalmel '25

これは正解です。私にとってはすぐに機能しました。
キングストンフォーチュン

git remote set-url ...私のように間違えた人、または愚かにも自分のユーザー名(たとえばPeDro)にBig Case Alphabetが含まれている人(!)は、これに従う必要があります。それは働いた:)
Pe Dro

23

でGIT_SSH環境変数を削除してみてくださいunset GIT_SSH。これが私の問題の原因でした。


1
ワークス..私は:)からGIT_SSH環境変数を得たところ、私は疑問に思う
StrangeLoop

1
Windowsの場合、詳細オプションメニューからGIT_SSH環境変数を削除します。私のために働いた。
splintercell 2016年

どうやって?それを行うには、ターミナルに何を書けばよいですか?
エージェントゼブラ

17

端末で次のコマンドを実行して、ssh-agentが実行されていることを確認します。

eval $(ssh-agent -s)

出典:Githubのドキュメント


これは私にとっても問題を修正します。ありがとう
Ahmad

これで修正されました。それが将来実行されることを確認するために私がしなければならないことはありますか?私の.zshrcファイルのエントリとして入れますか?
ブレイディダウリング

14

これは通常、SSHキーがリモートと一致しないために発生します。

ソリューション:

  1. ターミナルに移動し、次のコマンド(Mac、Linux)を入力して、メールIDに置き換えます。

    ssh-keygen -t rsa -C "you@email.com"

  2. sshという単語から始まる次のコマンドを使用して、生成されたキーをコピーします。

    猫〜/ .ssh / id_rsa.pub

  3. リモートのgithub、bitbucket、またはgitlabにそれぞれ貼り付けます。
  4. それを保存。

9

私も同じ問題を抱えていました。

このエラーは、コードがプッシュするリモートURLの場所を指定していないことを意味します。

リモートURLは、主に2つの方法で設定できます。

  1. Git Bashでコマンドを実行してリモートURLを指定します。

    • プロジェクトディレクトリに移動します。

    • Git Bashを開く

    • コマンドを実行:

      • git remote set-url origin <https://abc.xyz/USERNAME/REPOSITORY.git>
  2. リモートURLを構成ファイルに直接記載する

    • プロジェクトディレクトリに移動します。

    • .gitフォルダに移動

    • オープン設定テキストエディタでファイル

    • 行の下にコピーして貼り付け

      • [remote "origin"] url = https://abc.xyz/USERNAME/REPOSITORY.git fetch = +refs/heads/*:refs/remotes/origin/*

詳細については、このリンクにアクセスしてください



7

同じエラーが発生しました。解決策は次のとおりです:で自分のURLを修正しました.git/config。HTTPSクローンURLからコピーしただけです。それはそのようなものでしょう:

url = https://github.com/*your*git*name*/*your*git*app*.git

動いた。


これをWindows OSの設定ファイルに書き込んだ場合、エラーは別様に発生し、「/ c / Users / asus / .ssh / config:line 5:Bad configuration option:url」
gumuruh

sshでのhttpsの使用は問題なく、ユーザー名とパスワードを要求する
Kiran

4

別の回避策:

ネットワークの問題が原因で、これが発生することがあります。私は根本的な問題を完全には理解していませんが、別のサブネットワークに切り替えるか、VPNを使用することで解決します


まさに私の場合。このコメントを読んだらいいのに。数時間のデバッグの後、VPNを使用することを考え、それは機能しました。
Chaitanya Bapat

4

Gitlabを使用する場合は、プルまたはプッシュする前に、ログインしてGitlabの新しい条件に同意する必要がある場合があります。


なぜ反対票か。同じ日に私は私の問題を解決しました、それは新しいgitlab用語と関係がありました。
MarceloAgimóvel、2018年

反対票を削除してください。これは有効な回答です。gitlabの用語が変更された後に発生しました。gitlabの新しい用語を受け入れることで問題が解決する場合があります。
MarceloAgimóvel、2018年

3

.git / configファイル

[remote "YOUR_APP_NAME"]
    url = git@heroku.com:YOUR_APP_NAME.git
    fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*

そして単に

git push YOUR_APP_NAME master:master 

3

私の場合、githubで認証するためにパスワード付きのsshキーを使用していました。Windowsでページェントを正しく設定していませんでした(cygwinのみ)。不足している手順は、git_ssh環境変数がplink.exeを指すようにすることでした。また、github.comをplink known_hostsに入れる必要があります。

   plink github.com
   y
   <then ctrl-c>

お役に立てれば!

intellijが私にもっと有用なエラーを与えてくれればいいのにと思いますが、sshキーのパスワードを入力するように求めてきました。


3

Bitbucketのssh秘密鍵とsshエージェントの正しい鍵が間違っていました。

最初にすべてのキーを削除しました

ssh-add -D

次に、正しいキーを追加しました。

ssh-add ~/.ssh/id_rsa

2

私の場合、オフィスでは企業ネットワーク(インターネット接続なし)を使用しています。githubからコードをプルするために、私はgitbashでhttpsプロキシを設定してから、sshの代わりにhttpsを使用してコードをプルします。ただし、コードをプッシュする場合、httpsプロキシは機能しません。そのため、インターネットネットワークに切り替えるか(インターネット接続を使用)、sshプロキシを設定することで問題を解決できます。


2

実際、私はWin7で動作させるために多くのことを試みました。ネイティブのSSH exectun fronをbuild-itと後方に変更し、同じエラーが発生したためです。偶然にも、「。git / config」ファイルで次のようにHTTPSに変更します。

[remote "origin"]
        url = https://github.com/user_name/repository_name.git
        fetch = +refs/heads/*:refs/remotes/origin/*

そしてそれはついにうまくいった。ですから多分それもあなたのために働くかもしれません。


2

同じ問題があり、しばらくしてから(sudo -sを使用して)rootユーザーの下にいるのを確認しました。これは誰かのために役立ちます。


マシンとBitBucketにsshキーを設定した場合でも、 'sudo'コマンドで 'git pull'を実行しようとすると、このエラーが表示されることを確認しました。
ElectroBuddha

2

「git push origin master」コマンドの後に「リモートリポジトリから読み取れませんでした」というエラーが表示される場合は、これを試してください。

1.ssh-keygen -t rsa -b 4096 -C "youremail"
2.eval $(ssh-agent -s)
3.ssh-add ~/.ssh/id_rsa
4.clip < ~/.ssh/id_rsa.pub(it copies the ssh key that has got generated)
5.then go to your remote repository on github and goto settings-> SSH and GPG keys ->new SSH key ->enter any title and paste the copied SSH key and save it
6. now give git push origin master 

2

私は完璧に機能するgitを持っていましたが、マスターにプッシュしようとしたときに突然そのエラーが発生しました。私が知ったように、それはリポジトリホストに問題があったためです。

GitHubまたはBitbucketを使用している場合は、次の場所で簡単にステータスを確認できます。

https://status.github.com/messagesまたはhttps://status.bitbucket.org/

ここに画像の説明を入力してください


1

私も同じエラーを抱えていましたが、この答えに私を助けてくれませんでした。NTFSの場所を追跡するために以下のコマンドを使用して、新しい「ベア」リポジトリを初めて作成しようとしました。

cd myrepository
git init --bare \\myserver.mycompany.local\myrepository.git
git init
git status
git add .
git status
git commit -m "Initial Commit"
git remote add origin \\myserver.mycompany.local\myrepository.git
git push -u origin master
git status

(新しい)追跡された上流ブランチを設定するためにオリジンを追加しようとすると、NTFSの場所でスラッシュではなくバックスラッシュを使用することが私の問題であることがわかりました。

私は使用して起源を削除しなければなりませんでした:

git remote rm origin

次に、予想されるスラッシュを使用して、起点を再度追加します

git remote add origin //myserver.mycompany.local/myrepository.git

これが将来の誰かを助けることを願っています。


1

コンピュータを変更した後、このエラーが発生しました。BitbucketでSourceTreeを使用しています。

そのため、Web上のBitbucketアカウントに接続しているときに、新しいコンピューターのBitbucket設定>セキュリティ> SSHキーでSourceTreeによって生成されたSSHキーを追加する必要がありました。


1

ターミナルを再起動してこの問題を解決しました(新しいウィンドウ/タブを開きます)。

したがって、根本的な問題を本当に理解したくない、または理解する必要がない場合は、より深く掘り下げる前に、テストメソッドを試す価値があります。


0

プライベートリモートリポジトリでこの問題が発生している場合。リモートサーバーでXcode契約に同意していることを確認してください。この修正を見つけるまでに数週間かかりました

コマンドラインから次のコマンドを使用します。sudoxcodebuild -license


0

私はそれについて簡単な修正を見つけたことを共有したかっただけです:

アクセスが拒否されました。致命的:リモートリポジトリから読み取れませんでした。正しいアクセス権があり、リポジトリが存在することを確認してください。

gitlabからログアウトして、再度ログインしてください。その後、問題を修正する必要があります。


0

putty / pageantを使用する場合は、正しいSSHキーをページェントに追加することを忘れないでください。そうしないと、このエラーが表示されます。ああ




0

それでも同じエラーが発生する場合は、git設定-> SSHタブ->使用するSSHクライアントがopenSSHに設定されていることを確認してくださいここに画像の説明を入力してください


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