首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git-push命令失败

git-push命令失败
EN

Stack Overflow用户
提问于 2022-02-01 08:17:53
回答 2查看 620关注 0票数 2

我现在很长时间都在面对这个问题,我可以用ssh克隆回购并提交到相同的回购,但是当尝试mvn clean release:clean release:prepare release:perform时,构建失败了如下所示。

代码语言:javascript
复制
[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。有人能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2022-02-01 08:24:10

需要测试的一个解决办法是:

代码语言:javascript
复制
git config --global url.git@github.com:.insteadOf username@github.com:

(假设SSH中使用: )

这样,Git将被迫在其SSH URL中使用正确的用户。

票数 2
EN

Stack Overflow用户

发布于 2022-02-01 08:51:46

SSH密钥允许您使用Git存储库进行身份验证,而无需担心密码。SSH是Linux服务器用于允许远程访问的同一种身份验证方法。

SSH密钥依赖于公共-私钥身份验证。要使此身份验证方法工作,您的Git服务器必须配置一个公钥,而您的本地机器必须具有相应的私钥。

在使用SSH身份验证之前,像亚特兰西安和GitHub这样的Git客户端需要将您的公钥上传到他们的仪表板上。

一个示例场景,我们已经配置了一个名为ck-git的本地存储库。这个存储库包含一个文件:README.md.

我们将把这个存储库链接到GitHub上的一个存储库。为此,我们可以使用git远程命令:

代码语言:javascript
复制
git remote add origin git@github.com:career-karma-tutorials/ck-git.git

我们已经创建了一个名为“原产地”的远程设备,我们可以将代码推送到其中。要将本地存储库推送到GitHub,可以使用GitHub命令:

代码语言:javascript
复制
git push -u origin master

此命令将我们的更改上载到“原始”远程服务器上的主分支。让我们看看当我们运行这个命令时会发生什么:

代码语言:javascript
复制
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密钥,您必须首先拥有一个密钥。您可以使用以下命令生成一个:

代码语言:javascript
复制
 ssh-keygen -t rsa -b 4096 -C "email@email.com"
    ssh-add -K ~/.ssh-/id_rsa

如果在提示您从第一个命令中选择密钥名时将其更改,则将“id_rsa”替换为您的键名。

然后,运行以下命令查看您的公钥:

代码语言:javascript
复制
cat ~/.ssh/id_rsa.pub

这将给您需要上传到版本控制系统的字符串。

原因3:使用错误的身份验证方法,我们将存储库配置为使用SSH URL:

代码语言:javascript
复制
git remote add origin git@github.com:career-karma-tutorials/ck-git.git

使用此URL意味着我们必须使用SSH授权密钥对对存储库进行身份验证。

这只有在我们设置了SSH身份验证时才有可能。如果要使用HTTP配置存储库(允许使用用户名和密码进行身份验证),则必须使用HTTP:

代码语言:javascript
复制
git remote add origin https://github.com/career-karma-tutorials/ck-git

当我们将代码推送到远程服务器时,我们将被要求提供Git用户名和密码。这将使我们有机会使用HTTP而不是SSH进行身份验证。

结论

“拒绝许可(公开密钥)”。致命:无法从远程存储库读取“错误是由您使用Git存储库的身份验证方式出现问题引起的。

若要解决此错误,请确保您的密钥正在Git帐户上使用。如果不是,将您的密钥添加到Git。如果您没有公钥,并且希望使用公钥来使用Git进行身份验证,则需要创建公钥。

如果不想使用SSH,可以选择使用HTTP进行身份验证。您可以通过使用HTTP作为存储库的远程URL来实现这一点。

参考文献:https://git-scm.com/docs/git-push

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70937351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档