git 无法克隆Gerrit存储库

pgccezyw  于 2023-09-29  发布在  Git
关注(0)|答案(3)|浏览(154)

我试图连接到托管在我的VPS gerrit。我在Windows上使用Git Bash。我已经在GitBash中使用ssh-keygen生成了SSH密钥,并在gerrit服务器上添加了密钥。当我运行ssh -p 29418 <username>@<gerrit-server>我会看到下面的欢迎消息

****    Welcome to Gerrit Code Review    ****

  Hi Full Name, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:

  git clone ssh://username@<gerrit-server>:29418/REPOSITORY_NAME.git

但当我通过运行以下命令克隆存储库时

git clone ssh://<username>@<gerrit-server>:29418/project-name.git

我在Git Bash终端中看到以下错误

Cloning into 'project-name'...
ssh_exchange_identification: Connection closed by remote host
fatal: Could not read from remote repository.

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

我无法理解发生了什么以及如何成功地在我的机器上克隆我的项目。有人能在这件事上帮助我吗?

更新-1:

我仍然无法弄清楚问题是什么,但我只是想分享一些奇怪的事情正在发生的权利。我创建了另一个SSH密钥,这次我为SSH密钥添加了一个密码。我也在SSH服务器上添加了该密钥。通常情况下,当密钥附带了一个密码时,Git Bash终端应该询问密码来解锁私钥。
现在发生的是,如果我通过运行命令ssh gerrit服务器
ssh -p 29418 <username>@<gerrit-server>它要求我解锁密码,这意味着它使用正确的ssh密钥,并显示Gerrit欢迎消息

  • 问题是,当我运行上面列出的git clone命令时,它没有询问密码,这意味着它使用了其他SSH密钥,这就是为什么我从Gerrit得到SSH_exchange_identification错误。在克隆之前,我还需要执行其他步骤吗?我是否必须进行任何Git设置才能成功克隆Git Repository?*
vyswwuz2

vyswwuz21#

配置你的git设置-> config
添加user.nameemail(用于gerrit设置)

taor4pac

taor4pac2#

我也面临着同样的问题,它不适用于最新版本的Git。
我在git version - 2.29.3上运行得很好。
如果你想识别哪个ssh键正在被使用,那么尝试在.ssh文件夹中添加一个名为config的文件,内容如下。这将帮助您识别使用的是哪个ssh-key-

# Gerrit 
Host gerrit.*.com
   host gerrit.*.com
   user user_name
   PreferredAuthentications publickey
   IdentityFile ~/.ssh/id_rsa
py49o6xq

py49o6xq3#

我也有同样的问题。
当我运行ssh -p 29418 <username>@<gerrit-server> gerrit ls-projects时,我将看到项目列表,但是当我克隆存储库时,我看到相同的错误。
我没有找到原因,但我终于可以从gerrit克隆仓库了。
路径是:gerrit->setting->HTTP Credentials-> generate new password -> copy it.
然后转到你的本地shell,git clone repository使用http,而不是使用ssh。
当问你passward,粘贴字符串刚刚复制在gerrit.
希望我能帮助一些人!

相关问题