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인 것 같습니다 ) 사용자의 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=list경우 -E.

답변2

/root/.ssh/sudo와 함께 git을 사용하면 가 아닌 에서 키를 찾습니다 /home/yourusername/.ssh/. 전자에 복사하기만 하면 작동합니다.

관련 정보