Tôi đang cố gắng để máy chủ cá nhân của mình là từ xa chính của git và tự động phản ánh điều đó với github. Tôi tìm thấy this article mà nó được chủ yếu làm việc với một kịch bản post-receive
mà không git push --mirror
(về cơ bản).phản ánh kho lưu trữ git tự lưu trữ tới github.com (lỗi xác thực)
Cách tiếp cận của tôi khác ở chỗ tôi muốn tránh phải tạo và bảo mật khóa triển khai và sau đó định cấu hình nó trên mọi kho lưu trữ.
Tập lệnh sau khi nhận của tôi hoạt động chính xác với hầu hết các biến thể bên dưới như được đánh dấu trong các nhận xét ngoại trừ khi tôi thực hiện chuyển hướng hoàn toàn + chuyển hướng + như trong bài viết trên blog, xác thực ngừng hoạt động.
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 &
Tôi có chuyển tiếp đại lý ssh mà tôi tin là cách thức hoạt động của các phiên bản. Vậy câu hỏi của tôi là tại sao 2 biến thể cuối cùng lại không thành công với lỗi xác thực?
Bạn có chắc chắn rằng sự thất bại là do những thay đổi này gây ra và không phải là điều gì khác? –
Có. Tôi đã thử nghiệm tất cả những hương vị trên và theo các ý kiến, những người được đánh dấu là "hoạt động OK" làm việc đáng tin cậy, và sau đó chỉ cần thay đổi cách xử lý stdio luôn gây ra thất bại. –
Vì vậy, có vẻ như vấn đề có thể là một cái gì đó trong cấu hình ssh của tôi. Đang điều tra. –