gpt4 book ai didi

git - 无法克隆存储库 : git@gitlab. com : Permission denied (publickey, 键盘交互)

转载 作者:行者123 更新时间:2023-12-05 04:35:06 26 4
gpt4 key购买 nike

到目前为止,我已经尝试了所有我能想到的并在网上找到的方法来让它工作,但我尝试过的任何方法都不起作用。

我正在使用 Windows 10。我已经在 GitLab 上有一个存储库并分配了一个 SSH key 。我只想克隆/推/pull 正常的东西。

当我执行 ssh -Tv git@gitlab.com 时,我明白了;欢迎来到 GitLab,@user!

但是当我尝试使用git clone git@gitlab.com:user/my-repo.git我明白了;

git@gitlab.com: Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.

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

这是我在 .ssh 中的配置,看到一些人通过这样做解决了他们的问题。

Host gitlab.com 
User git
Hostname gitlab.com
IdentityFile ~/.ssh/id_ed25519
Preferredauthentications publickey
TCPKeepAlive yes
IdentitiesOnly yes

我还尝试在 vsc 上将 GitLab 个人 token 与 GitLab 工作流一起使用,当我使用 Git Clone > Clone from GitLab > user/my-repo 下的菜单时,我可以看到 repo。我还可以使用 vsc 上的 GitLab 工作流打开远程仓库,我可以看到我的代码。尝试使用克隆 repo 时git clone https://gitlab.com/user/my-repo.git我明白了;

remote: HTTP Basic: Access denied
remote: You must use a personal access token with 'read_repository' or 'write_repository' scope for Git over HTTP.
remote: You can generate one at https://gitlab.com/-/profile/personal_access_tokens
fatal: Authentication failed for 'https://gitlab.com/user/my-repo.git/'

我已经多次重新制作 ssh key ,包括 rsa 和 ed25519,我删除并添加了一个新的个人 token ,但没有任何效果。

有没有人遇到过同样的问题?你是怎么解决的?我见过

我已将我的用户名和存储库名称替换为 usermy-repo

最佳答案

如果使用 ssh -Tv git@gitlab.com 有效,但使用 git clone ssh://git@gitlab.com:foo/bar.git 无效,这可能是由于 git 没有使用相同的 ssh 程序,因此,当 git 调用 ssh 时,它会在不同的位置查找您的 key 。

这是在 Windows 上使用 git for Windows 时常见的错误配置。

一个修复方法是将 GIT_SSH 环境变量设置为指向正确的 ssh 二进制文件的位置,或者设置您的 PATH 变量以便解析正确版本的 ssh正确。

有时,您安装的其他程序可能会在系统的 PATH 上放置不同版本的 gitssh。这会干扰 git 的工作方式。要知道您当前使用的是哪些,请运行以下命令:

where git
where ssh

对于 Windows 10 用户,大多数情况下,git 应该解析为 C:\Program Files\Git\cmd\git.exewhere ssh 应该解析为 C:\Windows\System32\OpenSSH\ssh.exe

如果 where ssh 命令没有解析到 C:\Windows\System32\OpenSSH\ssh.exe(如果有多个结果,它必须是第一个) 并且您的 GIT_SSH 环境变量未设置(或设置为其他位置)使用以下命令修复:

setx GIT_SSH C:\Windows\System32\OpenSSH\ssh.exe

(在某些其他情况下,这可能会解决您的问题,即使 where ssh 看起来是正确的)

如果你的 where git 命令解析为 C:\Program Files\Git\cmd\git.exe 以外的东西(如果列出了多个,它应该是首先)您需要从 PATH 环境变量中删除错误的条目。 (最简单的方法是从开始菜单搜索“环境变量”并使用 GUI 编辑您的 USER 或 SYSTEM PATH 环境变量)。还要确保你已经使用官方 64 位安装程序安装了 git。

最后,确保 Windows OpenSSH 身份验证代理服务正在运行。打开“服务”然后找到“Windows OpenSSH 身份验证代理”并确保该服务正在运行。还要确保您的 SSH 配置和 key 位于 C:\Users\yourusername\.ssh

在所有这些步骤之间,您应该能够确保 git 与 ssh 兼容。

所有这些的替代方法是使用“Git Bash”启动 git,它将自包含它自己的 gitssh 二进制文件,并自动使用你的 .ssh 用户配置文件主目录中的目录,这应该避免系统上出现任何其他环境问题。但是,这可能并不方便,因为您必须在任何时候想要使用 git 时打开 git bash,而您的 IDE 或其他程序可能不会自动使用 Git Bash。


其他引用资料:

Git with SSH on Windows

How to run ssh-add on windows?

关于git - 无法克隆存储库 : git@gitlab. com : Permission denied (publickey, 键盘交互),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71102752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com