sudoでgit pullを許可する方法

sudoでgit pullを許可する方法

git pull私のコンピュータで毎日使用して(sudoなしで)SSHフォルダ(cat ~/.ssh/id_rsa.pub)にキーがあります。

問題は、次のsudo git pullエラーが発生して電話をかけることができないことです。

sudo git pull
[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.

たぶん私の鍵に何か問題があると思います。

外部スクリプト(sudoを使用)から呼び出す必要があります。

どうやって電話をかけることができますかsudo git pull? sudoにキーを追加するには?

簡単に言うとpullうまくいきませんsudo。なぜですか?

答え1

sudo特定のユーザーを指定せずに一部のプログラムを実行すると、そのrootユーザーとして実行されます。

SSHを介してリポジトリを複製したようです(実際にはSSHのようです)、ユーザーの1人ではなく、ユーザーgitのSSH秘密鍵を探しています。root/root/.ssh//home/your-user/.ssh/

次のことを試すことができます。

  • 以下を使用してスクリプトを実行しますsudo -E-Esudoで実行するときに定義されたユーザー環境変数を保持します(一部のSSH変数が必要だと思いますSSH_AUTH_SOCKが、SSH_AGENT_LAUNCHER詳細を理解していません)。

  • スクリプトで「root」ではなく「user」としてgitコマンドを実行します。これを達成するためにsudo再び頼ることができます。 :)

    sudo -E -u $(logname) git pull
    

2回使用してくださいsudo -E。一度はスクリプトを呼び出し、一度はgitスクリプト内で使用します。

動作します:)

PSどの環境変数をsudoにエクスポートするかをより細かく制御するには、--preserve-env=listoptionの代わりに使用してください-E

答え2

/root/.ssh/sudoでgitを使用すると、代わりにキーを見つけます/home/yourusername/.ssh/

関連情報