我的本地计算机上有一个较旧的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.
答案 0 :(得分:2)
一种可能的解决方案是在〜/ .ssh / config中设置您的git主机以及您用于工作的私钥(示例~/.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密钥部分中使用它们)
然后你可以做一个
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
要解决每个帐户的不同电子邮件,身份的问题,有一种方法可以使用https://stackoverflow.com/a/23107012/325742
中详述的预提交挂钩答案 1 :(得分:1)
答案 2 :(得分:0)
TL; DR
当我的ssh密钥从ssh代理发送错误消息时,我遇到了这种情况。我通过将其添加到ssh代理中解决了该问题。
好答案
在Macbook上安装更新后,我重新启动。重看之后,我首先从事了一个个人项目(并推动了他的工作)。然后,我想在我的“工作”项目中工作并推送到适当的仓库。 /path/to/script/get-quote.py
这次失败了。
设置git push
有助于确定我的个人帐户的ssh密钥已被使用。然后,我检查了添加到SSH代理的密钥,只列出了我的个人帐户。
GIT_SSH_COMMAND=ssh -v
我还与$ ssh-add -l
3072 SHA256:xxx...xxx raiyan_kamal (RSA)
ssh -T
我的工作帐户的SSH密钥为work_key,名称为raiyan @ work。因此,现在我向代理添加了适当的密钥:
$ ssh -T
logged in as raiyan_kamal
...
然后检查以确保列出了两个键:
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)
已进入工作项目仓库。