当前位置: 首页 > 知识库问答 >
问题:

无法克隆存储库:git@gitlab.com:权限被拒绝(公钥,键盘交互)

锺英彦
2023-03-14

到目前为止,我已经尝试了我能想到的任何东西,并在网上找到了它,但我尝试的任何东西都不起作用。

我使用的是Windows 10。我已经在GitLab上有了一个存储库,并分配了一个SSH密钥。我只想克隆/推/拉普通的东西。

当我做ssh-Tv时git@gitlab.comI get<代码>欢迎来到GitLab,@user

但是当我尝试使用git克隆来克隆repo时git@gitlab.com:用户/我的回购。gitI get;

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.

这是我的配置。宋承宪看到一些人通过这样做解决了他们的问题。

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

我还尝试在vsc上的GitLab工作流中使用GitLab个人令牌,当我使用Git Clone下的菜单时,我可以看到repo

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密钥rsa和ed25519,我已经删除并添加了一个新的个人令牌。

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

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

共有2个答案

柳胜
2023-03-14

SSH仍然是坏的,但我找到了一种使用个人令牌访问我的存储库的方法,当它要求您输入用户名和密码时,请输入令牌而不是密码。

养振濂
2023-03-14

如果使用ssh-Tvgit@gitlab.com工作,但使用git clone ssh://git@gitlab.com: foo/bar.git不工作,这可能是因为git没有使用相同的ssh程序,因此,当git调用ssh时,它会在不同的位置显示您的密钥。

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

一种修复方法是设置GIT\u SSH环境变量以指向正确的SSH二进制文件的位置,或者设置PATH变量以正确解析正确版本的SSH。

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

where git
where ssh

在大多数情况下,对于Windows 10用户,其中git应解析为C:\Program Files\git\cmd\git。其中ssh应解析为C:\Windows\System32\OpenSSH\ssh。exe

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

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

(在其他一些情况下,这可能会解决您的问题,即使其中ssh似乎是正确的)

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

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

在所有这些步骤之间,您应该能够确保git与ssh配合良好。

所有这一切的替代方法是使用“git Bash”启动git,git Bash将自身包含自己的git和ssh二进制文件,并自动使用您的二进制文件。ssh目录,这应该可以避免系统上的任何其他环境问题。然而,这可能并不方便,因为您需要在任何时候打开git bash,而您的IDE或其他程序可能不会自动使用git bash。

其他参考资料:

Windows上带有SSH的Git

如何在windows上运行ssh add?

 类似资料:
  • 我正在尝试从我的Gitlab帐户克隆一个空存储库。我只是使用Gitlab存储库页面上下显示的地址: 然后在一个空文件夹中尝试这个操作,但它一直告诉我拒绝允许,要求重试: 当我选择地址进行克隆时,会显示以下消息: 怎么啦?怎么修?

  • 我们有一个共同的LDAP帐户/用户。我们计划使用此用户为我们的团队配置 Jenkins。 < li >我使用我的登录名登录到机器/虚拟机并安装了Jenkins。 < li >然后,我仅从我的帐户生成ssh密钥,但我在生成ssh密钥时提供的电子邮件id是普通用户。 < li >然后我将公共ssh密钥添加到Github中(在GitHub中,我使用普通用户登录)。 < li >将私钥添加到Jenkins

  • 我试图将一个repo克隆到PythonAnywhere,但是我得到了一个权限拒绝(publickey)错误。 我按照PythonyWhere上的说明设置ssh密钥,并像正常情况一样将它们粘贴到GitHub中,但仍然收到错误。

  • 我无法使用ssh密钥访问我的repo。当我尝试将git推送到gitlab上的代表时,它会询问密码短语。 我从头开始的步骤。我要到~/. ssh/和此文件夹中的所有文件。然后: > 创建ssh密钥mymail@gmail.com“-b 4096 然后在~/. ssh/

  • 我正在上传。mp3文件通过Firebase存储,但我遇到了权限/规则问题。每次上传时,我都会收到控制台警告 “FIREBASE警告:更新/失败:权限被拒绝” 和 "firebase.js:478未捕获(promise中)错误:PERMISSION_DENIED:拒绝许可" 尽管有这些错误,我还是在Firebase存储中找到了该文件。然而,这些错误使我的代码无法顺利运行。我发现更改Firebase数

  • 问题内容: 我真的很坚持这一点。我在哈德森(Hudson)创建了一个工作,并以与其他工作相同的方式进行了配置。我的项目和构建交付物存在于Git中。但是每次我尝试构建它时,都会出现以下错误: 在其他线程中,有人建议通过以jenkins用户身份登录来创建不同的私钥-公钥对,但我什至不知道如何在终端中执行此操作。我的意思是我知道如何使用“ sudo”命令以不同的用户身份登录,但我不认为有人建议使用sud