내 개인 서버를 내 기본 자식 호스트로 지정하고 자동으로 github에 미러링하려고합니다. 나는 this article을 찾았는데, 주로 post-receive
스크립트가 git push --mirror
(본질적으로)으로 동작합니다.자체 호스트 git 저장소를 github.com으로 미러링 (인증 실패)
내 접근 방식은 배포 키를 만들고 보안을 설정하지 않고 모든 저장소에서 구성하지 않아도된다는 점에서 다릅니다.
위의 블로그 기사 에서처럼 전체 nohup + stdio 리디렉션 + backgrounding을 수행 할 때를 제외하고 내 수령 스크립트는 아래의 대부분의 변형에서 올바르게 작동합니다. 인증이 작동하지 않습니다.
GITHUB_USERNAME=focusaurus
BARE_PATH=$(pwd -P)
REPO_NAME=$(basename "${BARE_PATH}")
REPO_URL="ssh://[email protected]/${GITHUB_USERNAME}/${REPO_NAME}"
echo "About to mirror to ${REPO_URL}"
#hmm, this works
#git push --mirror "${REPO_URL}"
#this works, too
#nohup git push --mirror "${REPO_URL}"
#and this also works OK
nohup git push --mirror "${REPO_URL}" &
#but this fails with
#Permission denied (publickey).
#fatal: The remote end hung up unexpectedly
#Somehow ssh agent forwarding must get screwed up? Help me, Internet.
#nohup git push --mirror "${REPO_URL}" &>>/tmp/mirror_to_github.log &
#this is the one used in the blog post above but it also fails
# nohup git push --mirror "${REPO_URL}" &>/dev/null &
나는 작동하는 버전이 작동하는 방법이라고 생각하는 ssh 에이전트 포워딩을 사용합니다. 그래서 내 질문에 그 마지막 2 유사 콘텐츠 인증 오류와 함께 실패합니까?
오류가 이러한 변경으로 인한 것이지 다른 것이 아닌 것은 확실합니까? –
예. 나는 위의 모든 맛을 테스트했으며 주석에 따라 "작동 OK"로 표시된 작업은 안정적으로 작동 한 다음 stdio가 일관되게 처리되는 방식을 변경하면 오류가 발생합니다. –
그래서 ssh 설정에서 문제가있는 것 같습니다. 조사 중입니다. –