[英]Can't SSH into my Bitbucket repository - conq: repository access denied
我已經按照一百萬的指南對此進行了操作,但我無法使其正常工作。 之前,我通過SSH成功推送到了我的私有Bitbucket git存儲庫,現在突然不起作用了。
我用新的密碼短語重新創建了密鑰,並將其添加到我的Bitbucket設置中,它將無法正常工作。
好的,這是我采取的步驟:
ssh-keygen -f ~/.ssh/project1 -C "project1"
~/.ssh
文件中為我的兩個 Bitbucket帳戶創建了一個config
,內容如下: Host project1 HostName bitbucket.org IdentityFile ~/.ssh/project1 Host project2 HostName bitbucket.org IdentityFile ~/.ssh/project2
project1.pub
的內容,並在我的Bitbucket帳戶中創建了一個新的SSH密鑰條目。 ~/.zshrc
插件列表中添加ssh-agent
,如下所示: plugins=(git ssh-agent)
並重新啟動終端 ssh-add -l
並只加載了project2
ssh-add ~/.ssh/project1
輸入了我的密碼並成功,如下所示: 2048 SHA256:THESHA256 /Users/myuser/.ssh/project2 (RSA) 2048 SHA256:THESHA256 /Users/myuser/.ssh/project1 (RSA)
ssh-add -l
並列出了兩個條目 git push
,它告訴我我無法訪問。 當我執行ssh -T git@bitbucket.com
,它告訴我我使用project2的用戶名登錄 。
以project2_user身份登錄。
我的系統是OS X 10.11.5
我永遠無法在計算機上修復多個身份,並且始終使用HTTPS,但是我需要使用SSH來確保所有內容的安全,這也使我的帳戶具有兩重身份驗證。 因此,現在必須使用SSH,我不知道該怎么辦。
PS:我也為project2的身份做了創建步驟,但是我相當確定它也不起作用。
我遵循的指南:
編輯
project2沒有密碼,而project1有! 只是認為這可能是相關的。
編輯2
我做了ssh-add -D
刪除了所有已加載的密鑰,然后為project1添加了密鑰,輸入了密碼並推送了它。 有效。 但是現在我的其他身份不起作用,因為未加載其密鑰。
為什么我的多個身份不起作用?
如果同一遠程主機上的不同存儲庫要求使用不同的SSH身份,則必須使用SSH別名。
檢查remote.origin.url
在本地存儲庫中remote.origin.url
具有以下(或等效值)值:
git@bitbucket.org:accountX/project1.git
git@bitbucket.org:accountY/project2.git
accountX
可以是與您在Bitbucket上的第一個身份相關聯的帳戶(即project1_user
),也可以是向其存儲庫project1
授予對project1_user
訪問權的另一個帳戶。 project2
。
現在,當git必須從本地存儲庫連接到遠程存儲庫時,它將首先必須連接到遠程服務器,並且這兩個項目的后者都設置為bitbucket.org
。 然后,git如何知道要使用哪個SSH身份? 它選擇一些與bitbucket.org
相關的身份。
如下更新您的remote.origin.url
設置:
git@project1:accountX/project1.git
git@project2:accountY/project2.git
然后,當告訴git連接到git@project1
,它將project1
解析為~/.ssh/config
的相應條目,並使用其中指定的標識。 對於project2
同樣。
根據我的經驗,在這種情況下,您可以節省大量時間和精力使用HTTPS。
幾個月前,我無法通過多個SSH身份獲得成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.