我现在很长时间都在面对这个问题,我可以用ssh克隆回购并提交到相同的回购,但是当尝试mvn clean release:clean release:prepare release:perform时,构建失败了如下所示。
[ERROR] Provider message:
[ERROR] The git-push command failed.
[ERROR] Command output:
[ERROR] username@github.someCompany.com: Permission denied (publickey).
[ERROR] fatal: Could not read from remote repository.
[ERROR]
[ERROR] Please make sure you have the correct access rights
[ERROR] and the repository exists.问题是,当我尝试mvn clean release:clean release:prepare release:perform时,它应该使用git@github.someCompany.com而不是username@github.someCompany.com。有人能帮我解决这个问题吗?
发布于 2022-02-01 08:24:10
需要测试的一个解决办法是:
git config --global url.git@github.com:.insteadOf username@github.com:(假设SSH中使用: )
这样,Git将被迫在其SSH URL中使用正确的用户。
发布于 2022-02-01 08:51:46
SSH密钥允许您使用Git存储库进行身份验证,而无需担心密码。SSH是Linux服务器用于允许远程访问的同一种身份验证方法。
SSH密钥依赖于公共-私钥身份验证。要使此身份验证方法工作,您的Git服务器必须配置一个公钥,而您的本地机器必须具有相应的私钥。
在使用SSH身份验证之前,像亚特兰西安和GitHub这样的Git客户端需要将您的公钥上传到他们的仪表板上。
一个示例场景,我们已经配置了一个名为ck-git的本地存储库。这个存储库包含一个文件:README.md.
我们将把这个存储库链接到GitHub上的一个存储库。为此,我们可以使用git远程命令:
git remote add origin git@github.com:career-karma-tutorials/ck-git.git我们已经创建了一个名为“原产地”的远程设备,我们可以将代码推送到其中。要将本地存储库推送到GitHub,可以使用GitHub命令:
git push -u origin master此命令将我们的更改上载到“原始”远程服务器上的主分支。让我们看看当我们运行这个命令时会发生什么:
Permission denied (publickey).
fatal: Could not read from remote repository.请确保您有正确的访问权限和存储库存在。
我们遇到了一个错误。
解决方案#1:
在探索任何其他解决方案之前,请检查您的密钥是否被使用,我们应该确保我们的密钥被用来建立SSH连接。我们可以通过使用ssh-add命令来做到这一点:
eval "$( SSH -agent -s)“ssh-add -l -E md5第一个命令在您的计算机上启动SSH代理。下一个命令列出计算机上配置的所有SSH键。
现在您有了这个SSH密钥列表,检查它们是否与您上传到GitHub、Bitbucket或其他版本控制系统的密钥匹配。如果列表中至少有一个键不匹配,则需要将其中一个键添加到版本控制系统中。
解决方案2
:添加SSH密钥时,如果尚未向版本控制帐户添加SSH密钥,则可能会遇到此错误。将SSH键添加到Git存储库的方式因您使用的版本控制系统而异。
对于GitHub,可以使用以下步骤:
请使用我们在解决方案#1打开GitHub中讨论的命令记录您的SSH键,单击右上角的化身,然后单击侧栏中的“Settings”单击“SSH和GPG键”,向您的帐户添加SSH密钥以向您的帐户添加SSH密钥,您必须首先拥有一个密钥。您可以使用以下命令生成一个:
ssh-keygen -t rsa -b 4096 -C "email@email.com"
ssh-add -K ~/.ssh-/id_rsa如果在提示您从第一个命令中选择密钥名时将其更改,则将“id_rsa”替换为您的键名。
然后,运行以下命令查看您的公钥:
cat ~/.ssh/id_rsa.pub这将给您需要上传到版本控制系统的字符串。
原因3:使用错误的身份验证方法,我们将存储库配置为使用SSH URL:
git remote add origin git@github.com:career-karma-tutorials/ck-git.git使用此URL意味着我们必须使用SSH授权密钥对对存储库进行身份验证。
这只有在我们设置了SSH身份验证时才有可能。如果要使用HTTP配置存储库(允许使用用户名和密码进行身份验证),则必须使用HTTP:
git remote add origin https://github.com/career-karma-tutorials/ck-git当我们将代码推送到远程服务器时,我们将被要求提供Git用户名和密码。这将使我们有机会使用HTTP而不是SSH进行身份验证。
结论
“拒绝许可(公开密钥)”。致命:无法从远程存储库读取“错误是由您使用Git存储库的身份验证方式出现问题引起的。
若要解决此错误,请确保您的密钥正在Git帐户上使用。如果不是,将您的密钥添加到Git。如果您没有公钥,并且希望使用公钥来使用Git进行身份验证,则需要创建公钥。
如果不想使用SSH,可以选择使用HTTP进行身份验证。您可以通过使用HTTP作为存储库的远程URL来实现这一点。
https://stackoverflow.com/questions/70937351
复制相似问题