我无法克隆一个Git存储库,并得到这个错误:

krishna.soni@KRISHNACHANDRAS /c/Projects $ git clone http://stage.abc.com:10088/pqr
http://<url>/<repository> Cloning into '<repository>'... fatal: could not read Username for 'http://<url>': No such file or directory

我读过Bitbucket, Windows和“致命:无法读取密码”,但仍然有问题。

我继续前进,但现在得到这个错误

sh.exe": chown: command not found

krishna.soni@KRISHNACHANDRAS /c
$ git clone ssh://krishna.sonipayu.in@stage.payupaisa.
/projects
Cloning into 'C:/projects'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

> krishna.soni@KRISHNACHANDRAS /c
>     $ git clone ssh:<url>
>     ts
>     Cloning into 'C:/projects'...
>     Permission denied (publickey).
>     fatal: Could not read from remote repository.

Please make sure you have the correct access rights

并且存储库存在。


这看起来像是权限问题,而不是Windows 7的问题。

您的ssh密钥未被授权-权限被拒绝(publickey)。

您需要创建一个公共ssh密钥,并请求Git存储库的管理员添加ssh公钥

如何执行此操作的信息:保存ssh密钥失败


您需要执行ssh-keygen -t rsa命令创建新的ssh密钥。


我也面临着同样的问题。我做了下面的事情,它对我很有效:

从Windows上的GIT GUI客户端生成密钥。将此密钥复制到剪贴板。 在bitBucket/ git网站上打开您的帐户,并将此密钥添加到您的配置文件中。这样,服务器就知道您是从合法系统访问的合法用户。 就是这样。从此以后,所有的推命令都对我有用。


Github(或Bitbucket)在他们的服务器上找不到你的ssh密钥。

只需在您的帐户设置中添加您的密钥。


我在GitHub上也遇到了同样的问题。下面是解决方法!

在您的计算机上生成一个SSH密钥,如下所述:生成SSH密钥。 登录您的GitHub帐户:GitHub Login。 在您的帐号中添加新生成的“SSH Key: My account SSH Key”。 再次尝试git克隆项目。


我在windows命令行运行git clone命令时遇到了同样的问题。但是该命令在Git Bash中成功运行。


如果全部失败,就像我的情况一样,卸载GIT,重新安装。出于某种原因,这是固定的。

注:

我尝试生成新的密钥和更新SSH公钥 还尝试删除所有键,并尝试创建一个新键。 没有,我的.gitconfig没有问题


对于来这里只是想获取存储库但不关心协议(ssh / https)的人,您可能只想使用https而不是ssh(如果支持ssh的话)。

举个例子

git clone https://github.com/%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

而不是

git clone git@github.com:%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

请注意,GitHub已弃用私人存储库的密码认证(https登录),因为它没有跟上最新的安全标准,使用个人访问令牌。

还需要注意的是,自2022年3月1日起,Bitbucket用户也不能再通过git通过https使用他们的Atlassian帐户密码,而是需要使用Bitbucket应用程序密码。


我在linux上也遇到了类似的问题。我通过登录到github服务器并创建一个部署密钥来解决这个问题。这是存储库的设置。然后,复制并粘贴我的公钥(通常在~/.ssh/id_rsa中)。Pub,但您的配置可能不同)。有一个复选框给予该密钥写权限。单击它(除非您只使用git进行部署,在这种情况下,不要单击它)。


如果在创建SSH并将其添加到您的Bitbucket帐户或其他地方后仍然存在访问问题,您需要在git, OSX或Linux上的终端上执行以下操作:

# Lists already added identities (‘ssh keys’)
ssh-add -l

然后,如果你没有看到你的密钥列出,添加它与以下(替换身份为其真实名称):

# Add a new identity
ssh-add ~/.ssh/identity

这对我很管用。


这也许很愚蠢,但它确实发生在我们身上:

如果你正在使用bitbucket和Sourcetree,你只是复制粘贴克隆URL到新的回购对话框,它将显示相同的错误时拉或推。

确保你在URL之前删除了“git clone”的东西。


克隆时,我有一个类似的问题[我的错误: 权限被拒绝(公钥)。 无法从远程存储库读取。 请确保您有正确的访问权限。等 ]

我使用的是bitBucket/UBUNTU14.04,但是我已经有了一组我之前生成的密钥文件,并且我已经更改了文件的名称。我简单地将文件复制到标准id_rsa和id_rsa。Pub名称格式。然后我重新运行该命令,没有问题。

OBTW:我也可以通过使用HTTP样式的克隆来使用密码提示。


我得到了错误…

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

...当我的笔记本电脑因为Windows 10的错误更新而死机并被返回出厂设置后,我试图通过Git Bash提示与Bitbucket进行联系。我已经从备份中恢复了所有的ssh文件。

错误的原因原来是在电脑重建后,我的Windows帐户名不匹配。我了解到公钥文件id_rsa。pub以一个易于阅读的字符串结束,它包括我的Windows帐户名,后面跟着@符号,然后是计算机名。

当我最初设置我的电脑时,我创建了我的Windows帐户名,其中包括我的中间首字母,但当我的电脑重置为出厂设置时,我们新的DevOps人员创建了我的帐户名,其中没有我的中间首字母。

为了解决这个问题,我简单地编辑了我的公钥文件id_rsa。把我名字中间的首字母去掉了。我坚持使用相同的计算机名,所以没关系。我将文件内容复制到Windows剪贴板。然后我登录到Bitbucket,在我的头像下进入Bitbucket设置,并添加了一个新的公钥,在那里我粘贴了新的内容。

回到Git Bash提示,我通过输入命令确认它现在可以工作了…

ssh -T git@bitbucket.org

...然后我收到了我已经登录的消息


对我来说,当我想从我的存储库克隆时,我在“权限被拒绝(publickey)致命:无法从远程存储库读取”之前注意到相同的消息。对于我的情况的解决方案是不使用sudo之前克隆,就是这样。


如果你生成新的公共ssh密钥并插入到bitbucket或github和

没用,请重新启动你的电脑。它帮助了我!!


我在Mac上遇到过这个问题——当我正确地设置SSH来访问我的Git存储库时,重启后(有一段时间Mac处于僵局),我的所有凭据都被删除了。显然,由于某种原因,酒吧钥匙被设置为644,导致它从钥匙链中被删除。readd:

Chmod 600公钥 ssh-add ~ /。Ssh /[您的私钥]-这应该显示身份已添加。您想要的密钥文件是没有.pub扩展名的密钥文件。 Ssh-add -l将显示新添加的标识

编辑:显然MacOS有删除密钥的倾向-下载High Sierra更新后(但我还没有安装它),我的密钥被删除了,我必须通过ssh-add重新添加它


macOS / Linux (Ubuntu):

1. 要进行身份验证,您需要从您的用户设置中将您的SSH密钥对的公共部分添加到bitbucket:用户设置——> SSH密钥

你可以在你的~/中找到上述公共部分。SSH目录,通常为id_rsa。酒吧。注意文件名的.pub部分为Public。 如果你还没有,它会帮助你生成一个

你还没有完成…

2. 您需要让系统知道对哪个远程主机使用哪个键,因此将这些行添加到~/中。ssh / config文件

Host bitbucket.org
 IdentityFile ~/.ssh/PRIVATE_KEY_FILE_NAME

其中PRIVATE_KEY_FILE_NAME是您的SSH密钥对的私有部分的名称,如果您没有乱动它,通常它的默认名称是:id_rsa 在这种情况下,将上面的PRIVATE_KEY_FILE_NAME替换为id_rsa(私钥没有.pub扩展名)


我也犯了同样的错误。我的解决方案是注销并再次登录,因为我的ssh-agent已经与远程ssh密钥不同步。

在这里加上这个,以防有人看到其他答案似乎不适用于他们的情况。


在为gitlab设置ssh时,我也遇到了同样的问题。我已经有ssh的github和我不能覆盖。 对我有效的步骤是:

生成带有新路径的SSH并添加到SSH列表SSH -add /path/to/new/id_rsa。 在~/中创建一个名为config的文件。ssh /使用。我使用vi ~/.ssh/config/。 将其添加到新创建的文件中

GitLab com服务器 主机gitlab。com RSAAuthentication赛 IdentityFile path / to / new / id_rsa

保存并退出。

在那之后,重新启动终端并尝试按,它应该工作


如果你想克隆开源项目来提交一个Pull Request:

我想克隆一个开源项目,这样我就可以提交一些pull请求。问题是我没有项目所有者的许可。没关系,因为我的目的是提交一份PR,这里有一个可行的替代方案:

我的解决方案:

叉库

然后从你的分叉库克隆。 完善你的功能,然后提交一个pull request。


有用的线索,我没有带来太多的新东西。我所采取的步骤也是马克西姆有益地指出的描述的一部分,但有些人可能会忽略它。本节为“将SSH密钥添加到SSH -agent”。

我已经生成了我的ssh-key,但重启后,我无法克隆我自己的存储库之一。

为了克隆,我必须启动ssh-agent并将私钥添加到该代理。

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

修复hub cli工具:

Git配置—全局中心。协议HTTPS长期 git远程添加OOPS https://github.com/isomorphisms/go.git && git推送OOPS立即修复


此错误发生在hub命令行工具上,因为它们的默认hub错误。协议git-config值。他们设置了回购

git://github.com/schacon/ticgit.git

而不是github实际接受的,即https://github.com/schacon/ticgit.git。


阅读LESS=+/“HTTPS代替”man hub将解释上述“长期修复”命令的来源。


我也有类似的问题。我更改了ssh密钥并重新启动并尝试了所有其他“n”解决方案。但对我来说,真正的问题是我们的gitlab默认协议从ssh变成了https。

检查远程url

git remote -v

更改远程url

git remote set-url origin https://URL

您可以尝试将ssh密钥添加到您的私有密钥链中。这对我很有效

ssh-add -K ~/.ssh/[your-private-key]

解决方案: 在您试图克隆到或从其推送的服务器上 猫~ / . ssh / id_rsa . pub 进入GitHub,设置,SSH和GPG密钥,新的SSH密钥 粘贴键。


我看到这个错误信息有很多不同的原因。 当我试图在本地设置另一个存储库时,除了一个已经完全使用ssh等,并将其连接到同一服务器,但其他存储库时,我也犯了同样的错误。这里找不到答案,但我想出来了。所以我发布了它。希望能帮到别人。

git remote add origin git@git.ourserver.com:teamalpha/repositorytwo.git

如果这些答案都没用

你使用的是Windows 您可以使用Putty生成密钥,或者已经安装了Putty 你的电脑 你可以用CMD或PowerShell生成密钥

Try

删除你的钥匙 在windows上搜索Git Bash,然后生成一个 Git Bash命令行中的新密钥 添加公钥到您的在线回购

然后,你会发现git克隆后,输入yes确认,它应该开始克隆


移除远端原点

Git远程删除原点

添加HTTP远程源


我遵循了生成新的SSH密钥并将其添加到SSH -agent和

在Git for Windows上自动启动ssh-agent。

在我的情况下~/。我的Windows中没有配置文件。 我必须创建它,然后添加上面链接中提供的脚本。


在更改我克隆的文件夹的权限后,它工作了:

sudo chown -R ubuntu:ubuntu /var/projects


对于Fedora 33+和Bitbucket用户:

出现这个问题是因为哈希算法过时了。正如Bitbucket上提到的,有两种选择:

选项1:

添加到~/。ssh / config文件。(如果文件不存在,就创建它。)

Host bitbucket.org
  PubkeyAcceptedKeyTypes +ssh-rsa

选项2:

使用更安全的算法。

ssh-keygen -t ed25519 -C "your_email@example.com"

我一直面临着同样的问题,突然间我突然想到哪里会出问题。

在您的计算机上生成一个SSH密钥,如下所述:生成 SSH密钥。

这就是我做错的地方

在生成ssh密钥时使用下面的命令,但我没有使用sudo,而克隆时我使用的是“sudo git克隆ssh_repo_url”,因为克隆时我需要创建我的用户没有权限的文件夹

生成ssh的错误方法

$ ssh-keygen -t ed25519 -C "your_email@example.com"

正确的方法,如果在克隆时使用sudo

$ sudo ssh-keygen -t ed25519 -C "your_email@example.com"

登录您的GitHub帐户:GitHub Login。 在您的帐号中添加新生成的“SSH Key: My account SSH” 钥匙。 再次尝试git克隆项目。(使用sudo生成的密钥)


通过浏览器登录bitbucket后, 我推到原点开始工作。