所以,我一直在使用作曲家来管理我的 git 存储库(在 bitbucket 上),现在,突然的作曲家抱怨我无法访问我的存储库:S
我没有做任何特别的事情。但是我继续使用ssh-keygen
生成一个新密钥,复制公钥并将其添加到我的bitbucket帐户中。
所以我又试了sudo composer update
,它仍然抱怨:
Failed to update git@bitbucket.org:afflicto/event.git, package information from this repository may be outdated (Agent admitted failure to sign using the key.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
error: Could not fetch origin
)
可能出了什么问题?
更新
我刚刚推送到我的一个 git 存储库,它工作正常。因此,似乎SSH密钥设置正确,但Composer正在做一些奇怪的事情。
更新 2
似乎以sudo
(即sudo composer update
)运行composer update
不会使用您的 ssh 密钥......所以我必须将我的 SSH 密钥添加到我想的根用户?:\
如 BitBucket 线程中所述:
通过使用
sudo ssh
将查找root
的密钥,而不是您的密钥/home/username/.ssh/
。
你可能不应该用 sudo 运行 git。但是,如果您确实需要,请在
root
帐户下生成一些新密钥并将其上传到Bitbucket。
或者你可以尝试sudo -E
,以保留你的环境,如"Git SSH 公钥被拒绝"中所述。
就我而言,我有第二个 ssh 密钥,需要将其添加为 ssh 代理中的标识
- eval $(ssh-agent -s)
- ssh-add ~/.ssh/my_ssh_private_key
就我而言,问题是我的SSH密钥具有权限0777,因此作曲家忽略了它们。我通过以详细模式运行(composer update -vvv
)发现了它