Git リモート リポジトリからプル/プッシュするたびに $("ssh-agent") を使用する必要があるのはなぜですか?

Git リモート リポジトリからプル/プッシュするたびに $("ssh-agent") を使用する必要があるのはなぜですか?

リモート Gitlab リポジトリにプルまたはプッシュしようとするたびに、次のエラーが発生します。

**> sign_and_send_pubkey: 署名に失敗しました: エージェントが操作を拒否しました

権限が拒否されました (公開鍵)。致命的: リモート リポジトリから読み取れませんでした。**

私はこのエラーに対処しようとしましたが、一時的にではありますが、解決できる唯一の方法は次のコマンドを使用することです。

> $("ssh-agent") を評価する

問題は、Gitlab にプッシュ/プルするたびにこのコマンドを使用する必要があることですが、これは正常ではありません。

これはなぜですか、そしてどうすれば確実に解決できますか?

PS: 私は Ubuntu 16.04.6 を使用しています。また、SSH キーを Gitlab に正しく追加したと確信しています。

御時間ありがとうございます。

答え1

秘密鍵を ssh エージェントに追加していない可能性があります。これを行うには、次のコマンドを使用します。

eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa

関連情報