![](/img/trans.png)
[英]how to get grunt to input git/bitbucket credentials on push to remote
[英]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
對於現有存儲庫,請執行以下步驟:
獲取遙控器列表:
git remote -v
更改遠程網址:
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
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.