最近問題に直面しました:gitリポジトリ(私の場合はBitbucket)にプッシュしようとするたびに、そのエラーが発生します:
$ git push origin master [email protected]: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
次のコマンドを実行して解決する方法を見つけました:
eval `ssh-agent` ssh-add -l ssh-add ~/.ssh/id_rsa
これを実行してから、git push origin master
、動作します。しかし、問題は、この問題がしばらくすると発生し始めることです(おそらく再起動後、何が原因で再び表示されるのかわかりません)。UPD:再起動が原因ではない可能性が高いので、直面したばかりです。上記のコードを実行してから10分後、同じエラーが発生しました。それ以降、ラップトップを再起動しませんでした。
このような動作の原因と、これを修正するにはどうすればよいですか?
コメント
- 1。 confluence.atlassian.com/bbkb/ … 2. confluence.atlassian.com/bitbucket/ …
- " sshを介してキーチェーンに追加されたキー-add -Kは、再起動後にssh-agentに自動的に再追加されません。" githubのソリューションを試しましたか.com / jirsbek / SSH-keys-in-macOS-Sierra-keychain ?
回答
これは、sshキーを生成したときに、セキュリティのためにパスフレーズを入力したために発生すると思います。 ssh-agentを起動し、ssh / rsa_idを追加すると、パスフレーズと同じようになります。
[root@user xxxxx]# eval "$(ssh-agent -s)" Agent pid 12082 [root@user xxxxx]# ssh-add /home/user/.ssh/id_rsa Enter passphrase for /home/user/.ssh/id_rsa: Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa) git push -u origin master Counting objects: 94, done.
回答
問題を投稿するのを忘れました:~/.ssh/config
内のすべてのホストについて、誤って他のサーバーにキーを設定しました。そのため、このキーを使用して正しいホストではなく、すべてのホスト。すべてのホストに対して削除し、そのキーを必要とするホストに対してのみ設定し、修正しました。
他の人の役に立つことを願っています。