グーグルで試し、 http://help.github.com/troubleshooting-ssh/ およびさまざまなガイドを読みました。 git Push -u Origin master
またはgit Push Origin master
(同じコマンド)ができません。
少なくとも2年ほどGitアカウントを持っています。私は自分のラップトップでリポジトリとPush -u Origin master
を正常に作成できましたが、このデスクトップでは問題が発生しています。
ここに私が試したものがあります:
1。gitユーザー名を設定しました
2。gitユーザーのメールを設定しました
3。/home/meder/.ssh/id_rsa.pubのコンテンツをgithubのアカウントページにアップロードしました。空白を貼り付けていないことを確認しました
4。これらの内容で〜/ .ssh/configを作成しました:
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
.sshを700、id_rsa 600に変更しました。
5。(properリモートOriginタイプミスなし:git remote add Origin [email protected]:medero/cho.git
6。#5を確認するために、ここに私の.git/configを示します。ディレクトリはcorrectであり、別のディレクトリではありません:
[remote "Origin"]
fetch = +refs/heads/*:refs/remotes/Origin/*
url = [email protected]:medero/cho.git
7。ssh [email protected] -v
は認証に成功します
8。奇妙なことの1つは、挨拶するユーザー名にt
が追加されていることです。私のgithubユーザー名はmedero
ではなくmedert
です。
こんにちはメデロット!認証に成功しましたが、GitHubはシェルアクセスを提供しません。
9。私はnotプロキシまたはファイアウォールの背後にいます
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し、編集、コミット、および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トークンISがアカウントページごとに正しいことを確認しました(検証済みの最初の2文字と最後の2文字)。
17。#16を確認するには、〜/ .gitconfigに
[github]
token = mytoken...
user = medero
18。必要であればssh-key add ~/.ssh/id_rsa
をしました...
理論:
Sshで認証されたとき、ユーザーの挨拶はmederot
ではなくmedero
であるため、怪しいものがあると思います。これは私のアカウントです。 githubアカウントの何かが誤ってキャッシュされる可能性はありますか?
私はmv ~/.ssh/id_rsa KAKA
とmv ~/.ssh/id_rsa.pub POOPOO
を実行し、ssh [email protected] -v
を実行しても、まだ認証され、/ home/meder/.ssh/id_rsaを提供すると言うので、ローカルのsshキャッシュの奇妙さを疑います。名前を変更しましたか?!キャッシュする必要がありますか?!
ステップ18では、ssh-add ~/.ssh/id_rsa
を意味すると思いますか?もしそうなら、それはこれを説明します:
また、ローカルのsshキャッシングの奇妙さも疑います/home/meder/.ssh/id_rsaの名前を変更したとき!?キャッシュする必要がありますか?!
... ssh-agent
がキーをキャッシュしているため。
GitHubを見ると、 mederot アカウントがあります。これはあなたとは何の関係もないと確信していますか? GitHubでは、[email protected]:...
URLを使用している場合、SSHキーに基づいてユーザーを識別するため、同じSSH公開キーを2つのアカウントに追加することはできません。 (これが許可されるべきではないことは確認されています ここ 。)
したがって、次のいずれかが当てはまると考えられます(尤度の降順で)。
1が当てはまらない場合は、GitHubに報告するため、2または3について確認できます。
もっと :
ssh-add -l複数の識別情報が存在するかどうかを確認し、存在する場合は、ssh-add -d "that key file"で削除します
数日間グーグルで調べた後、これが私の状況に似た唯一の質問であることがわかりました。
しかし、私はちょうど問題を解決しました!そこで、この問題を探している他の人を助けるために、ここに答えを掲載しています。
開く"キーチェーンAccess.app"(SpotlightまたはLaunchPadで見つけることができます)
カテゴリで"All items"を選択します
検索"git"
古くて奇妙なアイテムをすべて削除する
もう一度プッシュしてみてください、それはちょうど働いた
Windowsで問題が発生している場合は、Windowsの履歴から資格情報を削除します。
競合が原因です。
Ssh-agentからすべてのキーを消去します
ssh-add -d ~/.ssh/id_rsa
ssh-add -d ~/.ssh/github
Github sshキーを追加します
ssh-add ~/.ssh/github
これで動作するはずです。
Macでは、複数のGitHubログインがあり、SSHを使用してnotの場合、次を使用して正しいログインを強制します。
git remote set-url Origin https://[email protected]/username/repo-name.git
これは、プライベートリポジトリへのプッシュに問題がある場合にも機能します。
ソリューションは@spyar提供と同じであり、これは古いユーザー名を保存したKeychain Accessアプリです。
この状況には2つの解決策があります。
または
に
[email protected]:username/repo.git
お役に立てれば。
私はMacを使用していますが、キーチェーンアクセスアプリからgithubレコードを削除することで問題が解決しました:ここに私がやったことです:
上記の手順は、簡単にするために@spyarからコピーされます。
私は最近、httpsを使用してプッシュされた私のマシンの古いリポジトリでこの問題に遭遇しました。ステップ5と6は、https urlからssh urlへの使用からリポジトリのリモートURLを再設定することで問題を解決しました
リモートがhttps URLを使用していることを確認する
> git remote -v
Origin https://github.com/ExampleUser/ExampleRepo.git (fetch)
Origin https://github.com/ExampleUser/ExampleRepo.git (Push)
次に、ssh urlを使用するようにOriginを再設定します
> git remote set-url Origin [email protected]:ExampleUser/ExampleRepo.git
新しいリモートの確認
> git remote -v
Origin [email protected]:ExampleUser/ExampleRepo.git (fetch)
Origin [email protected]:ExampleUser/ExampleRepo.git (Push)
正常にgit Push -u Origin
できました
リモートがhttpsのときにプッシュが失敗する可能性のある設定を変更したかどうかはまだわかりませんが、これは私の問題の解決策でした
私はあなたと同じ問題を抱えていました。グーグルで長い時間を過ごした後、自分のエラーはアカウントに同じキーを追加した複数のユーザーが原因であることがわかりました。
だから、ここに私の解決策があります:間違ったユーザーのssh-keyを削除します(間違ったユーザーは私のアカウントでもあるので、それを行うことができます)。間違ったユーザーがあなたのアカウントでない場合、ssh-keyを変更する必要があるかもしれませんが、私はこれが起こるとは思いません。
そして、私はあなたの問題があなたのアカウント名のミスタイプミスによって引き起こされると思うと思います。
Travis CIを コンテンツのデプロイ に使用すると、このエラーが発生しました。これには、編集をリポジトリにプッシュすることが含まれていました。
最終的に、public_repo
スコープアクセス許可を持つTravisアカウントに関連付けられているGitHub パーソナルアクセストークン を更新することで問題を解決しました。
この問題は、次の原因でも発生します。
Mac/Linuxを使用しており、〜/ .ssh/configで「ControlMaster」を使用している場合、いくつかのsshコントロールマスタープロセスが実行されている可能性があります。
それらを見つけるには、次を実行します:
ps aux | grep '\[mux\]'
そして、関連するものを殺します。
私にとっては、FAHID(Windowsの場合)およびLEANNE(Macの場合)によって提案された解決策のみが機能しました。あなたがた両方に感謝します!
私もこれに遭遇しました。これを引き起こしたのは、変更をプッシュしているレポのクローンを作成中に、サインインせずにシークレットタブからクローンURLを選択したためです(その影響についてはまだわかりません)。なんらかの理由でgitが別のユーザーアカウントを選択することになりました。適切なサインインページからもう一度試してみたところ、いつものように機能しました。