我试图连接到托管在我的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?*
3条答案
按热度按时间vyswwuz21#
配置你的git设置-> config
添加
user.name
和email
(用于gerrit设置)taor4pac2#
我也面临着同样的问题,它不适用于最新版本的Git。
我在git version - 2.29.3上运行得很好。
如果你想识别哪个ssh键正在被使用,那么尝试在.ssh文件夹中添加一个名为config的文件,内容如下。这将帮助您识别使用的是哪个ssh-key-
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.
希望我能帮助一些人!