Ssh
如何使用本地機器上的密鑰在遠端實例上設置 Git?
我有一個設置,我可以從我的本地機器 ssh 到我的遠端伺服器(即 Google Compute 實例)。我曾經能夠從遠端實例上的儲存庫中複製、推送和拉取,而無需向遠端實例添加任何密鑰**,也無需線上向我的儲存庫添加任何新密鑰(僅來自****本地電腦的公鑰)。我相信遠端實例正在使用我本地**機器上的密鑰來驗證我的 Git 推送和拉取。
但是,當我在本地電腦上重新安裝作業系統時,系統崩潰了。現在,當我嘗試從遠端實例連接 Github 伺服器時,我得到以下資訊:
無法複製:
[lucas@ecoinstance]~/node$ git clone git@github.com:lucasExample/test.git test Cloning into 'test'... Permission denied (publickey). fatal: The remote end hung up unexpectedly
無法推送:
[lucas@ecoinstance]~/node/nodetest1$ git status # On branch master # Your branch is ahead of 'origin/master' by 1 commit. # nothing to commit (working directory clean) [lucas@ecoinstance]~/node/nodetest1$ git push Permission denied (publickey). fatal: The remote end hung up unexpectedly
附加資訊:
[lucas@ecoinstance]~/node/nodetest1$ ssh-add -l Could not open a connection to your authentication agent. [lucas@ecoinstance]~/.ssh$ ls authorized_keys known_hosts
如您所見,我的遠端實例上沒有密鑰。我從來沒有在遙控器上有過鑰匙,在我重新安裝本地作業系統之前,它會很好地推拉。
我仍然可以在我的本地機器上複製、推送和拉取,只是我的遠端機器無法獲得身份驗證。我的本地作業系統是 Ubuntu 14.04,我的遠端作業系統是 Debian Wheezy。
任何建議都會很棒。我不知道如何搜尋這個概念,我可以通過我的本地機器從遠端實例進行身份驗證,因此也歡迎任何參考。
聽起來您可能在重新載入本地電腦之前設置了 ssh 密鑰轉發設置。這將允許遠端機器使用您在本地擁有的密鑰。
在本地機器上編輯 ~/.ssh/config 並添加
Host remoteHost ForwardAgent yes
如果您遇到任何問題,Github 有更詳細的教程