Git

如何使用私鑰/公鑰在 GitHub 裸倉庫中推送程式碼

  • September 26, 2019

我有一個伺服器,我有一個帶有 node.js 應用程序的裸倉庫。我推送了沒有 node_modules 的程式碼並將它們直接安裝在伺服器上。這是我的問題:伺服器上的更改(node_modules)現在需要推送到 repo 以使應用程序正常工作。然而,問題在於我沒有在伺服器上的筆記型電腦上使用的私鑰和公鑰。

執行伺服器的文件位於名為 webbapp 的目錄中,該目錄隨後包含一個名為 website.git 的目錄(見下文),其中包含裸倉庫。

當我從工作樹推送到 repo 時,它給了我這個錯誤消息:

/opt/bitnami/apps/webapp/website.git$ git --work-tree=/opt/bitnami/apps/webapp/ push origin master
/usr/bin/ssh: /opt/bitnami/common/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/ssh)
/usr/bin/ssh: /opt/bitnami/common/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/ssh)
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

將此用作指導,並在重新啟動 apache 伺服器後卡住了。

謝謝您的幫助。

你是如何將它們推送到伺服器的?您必須使用某種身份驗證,除非您可以在沒有身份驗證的情況下從 repo 下載東西。

如果您沒有這些密鑰,那麼為伺服器創建一個新的密鑰對然後將其提供給 github 怎麼樣?一種解決方法是使用您的 github 登錄名/密碼。

進入兔子洞的下一個級別是查看您的 .git/config。您要查看的行是

[remote "origin"]
       url = localgit:docker
       fetch = +refs/heads/*:refs/remotes/origin/*

請注意,它們特定於我的設置。其實上面是使用我本地的git伺服器。這localgit是伺服器的 ssh 暱稱/別名;它與地址、使用者相關聯,在本例中為 ssh 密鑰。docker是回購。現在,如果我使用的是 github,這url條線可能看起來像這樣

       url = https://github.com/raubvogel/some-repo.git

這需要我進行身份驗證才能將某些內容上傳到 github。

希望以上內容可以幫助您入門。

引用自:https://serverfault.com/questions/985795