簡體   English   中英

如何在 BitBucket 中更改 git 終端憑據?

[英]How to change git terminal credentials in BitBucket?

我的本地機器上有一個較舊的 BitBicket 登錄憑據。 我需要將其更改為我的工作憑據。 我該如何改變這一切? 現在我正在嘗試推送到我的工作登錄憑據。 我得到以下信息,我認為這是因為我需要更改登錄憑據和 ssh 密鑰?

myapp (master) ✔ git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

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

一種可能的解決方案是在 ~/.ssh/config 中設置您的 git 主機以及您用於工作的~/.ssh/id_rsa_work (例如~/.ssh/id_rsa_work 。因此,將以下內容添加到~/.ssh/config

Host workid
 HostName bitbucket.org
 IdentityFile ~/.ssh/id_rsa_work

然后將公鑰添加到您的 bitbucket 帳戶(即復制cat ~/.ssh/id_rsa_work.pub並在您的 bitbucket 帳戶的 SSH Keys 部分中使用它們)

然后你可以做一個

git clone git@workid:<accountname>/<reponame>.git

對於現有存儲庫,請執行以下步驟:

  1. 獲取遙控器列表:

    git remote -v

  2. 更改遠程網址:

    git remote set-url origin git@workid:<accountname>/<reponame>.git

然后再次運行第一個命令以確認遠程 url 已更新。

這種方法的好處是您可以設置任意數量的 SSH 密鑰(例如,工作和/或私有)來訪問 bitbucket 存儲庫。

如果沿着上述路線走,請記住為~/.ssh/config文件設置正確的權限和所有權:

chown $USER ~/.ssh/config
chmod 644 ~/.ssh/config

為了解決每個帳戶的不同電子郵件、不同身份的問題,有一種使用 pre-commit hook 的方法,詳見https://stackoverflow.com/a/23107012/325742

如果您可以生成一個新的 ssh 公鑰並將其添加到您的帳戶中會更好嗎?

在此處輸入圖片說明

TL; 博士

當我的 ssh 密鑰從我的 ssh 代理丟失時,我遇到了這種情況。 我通過將它添加到 ssh 代理解決了這個問題。

長答案

我在 Macbook 上安裝更新后重新啟動。 重新啟動后,首先我從事(並推送到 bitbucket)一個個人項目。 然后我想要在我的“工作”項目上工作並推送到適當的倉庫。 這次git push失敗了。

設置GIT_SSH_COMMAND=ssh -v有助於識別我的個人帳戶的 ssh 密鑰正在被使用。 然后我檢查了添加到 SSH 代理的密鑰,只列出了我的個人帳戶。

$ ssh-add -l
3072 SHA256:xxx...xxx raiyan_kamal (RSA)

我也檢查過ssh -T

$ ssh -T
logged in as raiyan_kamal
...

我的工作帳戶的 SSH 密鑰是 work_key,名稱是 raiyan@work。 所以現在我向我的代理添加了適當的密鑰:

ssh-add <path to my work_key private key file>

然后檢查以確保列出了兩個鍵:

$ ssh-add -l
3072 SHA256:xxx.xxx raiyan_kamal (RSA)
2048 SHA256:yyy.yyy raiyan@work (RSA)

現在git push到工作項目 repo 工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM