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인 것 같습니다) 사용자 중 한 명이 아닌 사용자 git의 SSH 개인 키를 찾고 있습니다 .root/root/.ssh//home/your-user/.ssh/

다음을 시도해 볼 수 있습니다.

  • 다음을 사용하여 스크립트를 실행합니다 sudo -E. -Esudo에서 실행할 때 정의된 사용자 환경 변수를 유지합니다(일부 SSH 변수가 필요할 것으로 생각 SSH_AUTH_SOCK하지만 SSH_AGENT_LAUNCHER세부 사항을 잘 이해하지 못합니다).

  • 스크립트에서 "루트로" 대신 "사용자로" git 명령을 실행합니다. 이를 달성하려면 sudo다시 의지할 수 있습니다. :)

    sudo -E -u $(logname) git pull
    

두 번 사용합니다 sudo -E. 한 번은 스크립트를 호출하고 한 번은 git스크립트 내부에서 사용합니다.

작동할 겁니다 :)

PS 어떤 환경 변수를 sudo로 내보낼지 더 세밀하게 제어하려면 --preserve-env=listoption 대신 사용하세요 -E.

답변2

/root/.ssh/sudo와 함께 git을 사용하면 가 아닌 에서 키를 찾습니다 /home/yourusername/.ssh/.

관련 정보