使用SSH克隆git仓库

6

我正在尝试使用SSH克隆git存储库。因此,我在本地机器上创建了一个ssh密钥对,并将公钥添加到我的git存储库(即Bitbucket服务器)。

然后,如我在这里所看到的那样,我尝试以以下方式进行克隆:

git clone ssh://my_username@my-repository.com:7999/my_project.git

git clone ssh://git@my-repository.com:7999/my_project.git

然而,这些选项并没有起作用:

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

我唯一取得进展的方法是尝试这个:
git clone my_username@my-repository.com:7999/my_project.git

这个程序让我输入密码3次,但是最后失败了。我怀疑它并没有使用SSH,因为SSH不应该要求输入密码。

Password:
Password:
Password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,keyboard-interactive).
fatal: Could not read from remote repository.

那么我该如何使用SSH克隆git仓库呢?
编辑:
我在Windows系统上,使用的是Git Bash。
ssh-add -l

返回结果
The agent has no identities.

Bitbucket私有服务器还是云托管服务器? - Lasse V. Karlsen
操作系统是什么?Windows?Linux?OSX? - PatrickSteele
@patricksteele Windows。我更新了问题。 - bsky
@LasseV.Karlsen Bitbucket私有服务器 - bsky
2个回答

2

您确定此主机上的ssh工作在7990端口吗?如果此存储库位于Bitbucket上,则我几乎可以确定您可以使用默认的ssh端口。

git clone my_username@my-repository.com/my_project.git

就像在Bitbucket中使用SSH协议一样


Bitbucket服务器在7990端口。我在代码中找到了一个使用7999端口的git ssh命令。我尝试了两个端口,但都没有成功。 - bsky
你有查看这个指南吗:https://confluence.atlassian.com/bbkb/permission-denied-publickey-302811860.html? - darvark

2

大多数服务器都希望用户使用“git”用户名进行身份验证,并使用用于标识目的的私钥。

只需尝试使用SSH连接:

ssh ${USERNAME}@${SERVER} -p ${PORT}

这将确定您是否能够对服务器进行身份验证,无需考虑git。

您的私钥在哪里?如果不是~/.ssh/id_rsa(或已配置的路径),那么您需要提供其路径。请尝试以下操作:

ssh ${USERNAME}@${SERVER} -p ${PORT} -i ${MY_PRIVATE_KEY}

如果这个方法奏效,那么您可以将SSH配置设置得更加方便。 在~/.ssh/config文件中,您可以添加以下内容:

Host ${FRIENDLY_NAME}
    User ${USERNAME}
    Hostname ${SERVER}
    Port ${PORT}
    IdentityFile ${MY_PRIVATE_KEY}

您可以像这样测试连接:
ssh ${FRIENDLY_NAME}

最后提醒:
git clone ssh://${FRIENDLY_NAME}/${REPO_PATH}

如果端口不是默认的22端口,您只需要指定端口。

注意:我使用波浪符号(~),因为在我回答时您没有指定Windows。您可以通过按Win+R键,输入一个点(.)并按回车键来找到Windows上的“主目录”。这通常会将您带到C:\ Users \%USERNAME%


对于 ssh ${USERNAME}@${SERVER} -p ${PORT} -i ${MY_PRIVATE_KEY},我得到了 shell request failed on channel 0 - bsky
成功!虽然不是很友好,但仍然如此。 - Attie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接