我在Windows上使用TortoiseGit。当我试图从标准Windows资源管理器的上下文菜单克隆时,我得到这个错误:

请确保您拥有正确的访问权限并且存储库存在

更准确地说,终端的快照如下:

——progress -v "git@arobotdev:\git\AlfaRobot. exe。git”“C: \ \ AlfaRobot” 克隆到“C:\Work\AlfaRobot”… 权限被拒绝,请重试。 权限被拒绝,请重试。 权限被拒绝(公钥,密码)。 无法从远程存储库读取。 请确保您拥有正确的访问权限 并且存储库存在。 Git没有干净地退出(退出代码128)(21450 ms @ 19.09.2014 10:36:58)

我应该怎么做才能使git正常工作?


您正在尝试通过ssh: git@arobotdev..克隆存储库。,并且您的SSH密钥在服务器上没有正确设置。原因有很多:

您的公钥可能没有保存在用户git的authorized_keys文件中 如果1不为真,则“您的私钥不保存在您的HOMEDIR的。ssh/文件夹中”。 权限设置不正确

如果以上三点都不属实,那么我唯一的结论就是: git@arobotdev: AlfaRobot.git 假设AlfaRobot。git在git用户的HOMEDIR目录下,而不是在git用户的HOMEDIR目录下的名为git的文件夹中。


这个问题可能与您的ssh-agent有关,您的ssh密钥没有与ssh-agent一起添加。您必须在您的终端上执行以下步骤:-

$ eval "$(ssh-agent -s)" Agent pid 5867 $ ssh-add <private-ssh-key-file-name> // eg。Id_rsa(不是.pub) 为/home/you/输入密码。ssh / id_rsa: [] 标识添加:/home/you/。ssh / id_rsa (/ home /你/ . ssh / id_rsa)


你的git URL可能已经改变了。使用如下命令修改本地目录下的URL

对于HTTPS协议

git remote set-url origin https://github.com/username/repository.git

对于SSH协议

git remote set-url origin git@github.com:username/repository.git

这个问题可能有多种原因

如果问题与您的ssh身份有关,请在这里通过@onkar-m18回答 如果ssh密钥没有添加到主机服务器,请在这里通过@lovekush-vishwakarma回答


rsa。Pub(即公钥生成),需要在github上添加>>设置>>ssh密钥页面。请检查,您没有在存储库设置>>部署密钥中添加此公钥。如果是,从这里删除条目,并添加到第一个提到的位置。

public -private key的详细设置。

这样就可以了!


下面是我解决这个问题的方法。我在Win7/10上使用Babun(mint .exe)。当我尝试了上面提到的许多解决方案,没有一个是有效的。我意识到我可能用错了ssh代理… 所以我运行echo $GIT_SSH来查找,它显示了Plink.exe的路径。 我真正期待的是OpenSSH。

因此,我将以下一行程序添加到~/。zshrc中

注1:你也可以直接在babun中执行它 注2:如果你使用bash,那么配置文件是.bashrc

export GIT_SSH=$(which ssh)

它真的有用!


将这些行添加到你的.get/config文件中(感谢@kovshenin回答Git Pull: Change Authentication):

[credential]
    helper = wincred

对我来说,这是因为机器上没有SSH密钥。本地检查SSH密钥:

$ cat ~/.ssh/id_rsa.pub

这是您的SSH密钥。将其添加到存储库中的SSH密钥中。 在gitlab转到

配置文件设置-> SSH密钥

然后添加键


尝试https而不是ssh。从复制克隆url的项目主页中选择https选项。


尝试使用HTTPS代替SSH从GIT克隆,使用这个Url获取克隆,你可以使用Gitbase, Android Studio或任何其他工具克隆分支。


The first thing you may want to confirm is the internet connection. Though, internet issues mostly will say that the repo cannot be accessed. Ensure you have set up ssh both locally and on your github. See how Ensure you are using the ssh git remote. If you had cloned the https, just set the url to the ssh url, with this git command git remote set-url origin git@github.com:your-username/your-repo-name.git If you have set up ssh properly but it just stopped working, do the following: eval "$(ssh-agent -s)" ssh-add If you are still having the issue, check to ensure that you have not deleted the ssh from your github. In a case where the ssh has been deleted from github, you can add it back. Use pbcopy < ~/.ssh/id_rsa.pub to copy the ssh key and then go to your github ssh setting and add it.

我建议你总是使用ssh。对于我合作过的大多数团队来说,除非使用ssh,否则您无法访问回购(大多数是私有的)。对于初学者来说,这可能看起来很难,但后来你会发现它更容易和更安全。


奇怪的是,我只收到这个错误在1我的许多回购。

我的问题是在安装了新的GitHub Desktop for Windows之后,以前的旧GitHub for Win将键保存在~/中。Ssh /github_rsa和~/. Ssh /github_rsa。新的GitHub for Win期望它在~/。Ssh /id_rsa,所以解决方案只是重命名现有的私钥和公钥:

~/.ssh/github_rsa -> ~/.ssh/id_rsa
~/.ssh/github_rsa.pub -> ~/.ssh/id_rsa.pub

之后,让我再次访问回购没有问题。


如果您通过VPN连接到git存储库,也会发生这种情况。 确保您已连接到用于访问组织资源的VPN。


使用您的HTTPS源而不是SSH url

例子:

git remote add origin  https://gitlab.com/user/folder.git

我有这个问题,我发现我的系统是错误的dns地址。验证您的网络和测试

ssh -vvv git@bitbucket.org

并读取输出消息。如果你看到“你可以使用git或hg连接到Bitbucket。”一切都很好。


我在用Ubuntu

在阅读了许多答案后,没有一个能解决问题,即使我已经添加了SSH密钥到我的git帐户,并尝试使用SSH -T git@gitlab.com测试它,它说欢迎<我的用户名>,但它仍然告诉我,我没有访问权限。后来我找到了原因:

通常情况下,如果你不是root用户,它会要求你对每个git命令都运行sudo。

当运行sudo git clone <SSH....>(例如)。它将在root权限下执行,但无意中创建SSH密钥时,我以普通用户运行它,并将密钥保存在~/中。Ssh /id_rsa,解析绝对路径为“/home/username/. Ssh /id_rsa”。当做sudo git克隆…它在/root/.ssh/id_rsa中查找SSH密钥

为什么我可以确定。查看git在哪里查找SSH密钥。执行命令sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <您的仓库在ssh >。它将显示在哪里查找SSH密钥。

所以我建议的解决方案是:

重新创建您的SSH密钥(遵循此说明),但在第一步运行sudo su,然后应该就可以了。


我在上传项目到gitlab时遇到了这个错误。我没有从git克隆,而是上传项目。要将代码推送到gitlab,有两种方法:使用ssh或https。如果你使用https,你必须输入用户名和密码的gitlab帐户。为了推动你的代码到git,你可以使用下面的一个。

第一次推到Git

>$ cd
>$ mkdir .ssh;cd .ssh
>$ ssh-keygen -o -t rsa -b 4096 -C "email@example.com"

-C参数是可选的,它在键的末尾提供了一个注释,如果您有多个键,则可以将其与其他键区分开来。 这将创建id_rsa(您的私钥)和id_rsa。Pub(您的公钥)。我们传递我们的公钥,并保留我们的私钥——嗯,是私有的。在Gitlab的用户设置中,您可以将您的公钥添加到您的帐户,从而允许我们最终推送。

在项目位置(目录)中使用以下命令

git init

它将当前目录转换为Git存储库。这将在当前目录中添加一个.git子目录,并使开始记录项目的修订成为可能。

使用https路径推送

git push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master

使用ssh路径

git push --set-upstream git@gitlab.com:Account_User_Name/Your_project_Name.git master

—set-upstream:告诉git到原点的路径。如果Git之前推送过当前的分支,它会记住原点在哪里

master:这是初始化时我想推到的分支的名称


Github现在使用url方案

Git远程set-url origin https://github.com/username/repository.git


我犯了一个很常见的错误。我使用剪辑命令xclip -sel剪辑< ~/.ssh/id_rsa复制。但是在粘贴到github键输入框期间,我使用退格删除了最后换行符,这实际上改变了公钥。

所以,总是复制和粘贴ssh公钥,因为它是没有删除最后换行。


如果它之前工作,突然停止工作:

此问题可能是因为有时ssh-agent在重新启动时不是持久的。你应该检查ssh-agent是否添加了你的密钥:

ssh-add -l -E md5

如果你得到如下输出:

The agent has no identities.

这意味着ssh-agent丢失了您的密钥。在这种情况下,您只需要再次添加标识键。喜欢的东西:

ssh-add ~/.ssh/git_rsa

错误现在应该消失了!


对我来说,我有公司VPN的问题,断开连接后工作正常。

使用命令ssh -vvvT git@github.com检查与github的连接


如果您使用的是共享机器,那么使用自己的密码或无密码私钥可能会有些过分。更安全的选项是访问令牌:

进入设置,开发人员设置,个人访问令牌 生成新的令牌。 注意标记的用途。 授予回购权限。 克隆回购:

$ git clone https://<token>@github.com/<user>/<repo>.git

如果你已经克隆了repo,你可以修改你的远程设置:

$ git remote set-url origin https://<token>@github.com/<user>/<repo>.git
$ git pull
Already up to date.

对我来说,它给出了相同的错误:

请确保您拥有正确的访问权限并且存储库存在。

一个快速的解决方法是消除~/。ssh / config文件

mv config config_old && touch config

eval "$(ssh-agent -s)"

git clone your_repo

因为它原来是配置文件被损坏,并配置了两个id


我的情况: 我使用Windows,我有一个以上的用户帐户。 我收到同样的错误,修复是启动git bash与管理员权限。


类似的问题:

我给密码时,git克隆使用SSH URL的git。 所以这个错误现在显示,每次我打开VS Code在Windows 10

下面修复了这个问题:

1。在CMD下执行以下命令

setx SSH_ASKPASS "C:\Program Files\Git\mingw64\libexec\git-core\git-gui--askpass"
setx DISPLAY needs-to-be-defined

2。退出CMD & VS Code

3.重新打开VS Code

4所示。VS Code现在显示一个弹出对话框,我们可以输入passspharse

以上命令适用于Windows操作系统,类似的指令也适用于Linux/MAC。


运行以下命令

open ~/.ssh

然后手动删除“known_hosts”文件

运行以下命令,生成新的ssh-key

ssh-keygen -t rsa -C "your@email.com"

然后是两个文件:id_rsa和id_rsa。Pub将在.ssh目录下生成,复制id_rsa.pub中的内容

登录github——>设置——> SSH和GPC密钥——>添加SSH密钥——>粘贴复制的内容在关键 运行以下命令

ssh -T git@github.com

好的,它起作用了


进入你的cmd并运行:git config——global http。sslverify假


您可以按照以下步骤-

Check for existing keys- a. ls -al ~/.ssh Create key if does not exist- Paste the text below, substituting in your GitHub email address. a. ssh-keygen -t ed25519 -C "your_email@example.com" b. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location. c. At the prompt, type a secure passphrase. Adding your SSH key to the ssh-agent- Fire up the SSH agent and add the key eval ssh-agent -s ssh-add ~/.ssh/id_ed25519 Adding key to Git account- Pull up the key and add to Github account cat ~/.ssh/id_ed25519.pub Navigate to Git account and add SSH key


如果使用ubuntu/linux试试这个:-

git config --global --unset credential.helper

现在通过以下步骤从Github帐户生成一个个人访问令牌

>>GITHUB ACCOUNT 
>> Developer setting 
>> Personal Access Token 
>>Genrate new one with all acess & use it as your password !!

窗口用户观看以下链接:-

https://www.youtube.com/watch?v=fkKkojKYZ8U


我只是按照这个解释

我试过评估,很有效。

然后我尝试ssh -T git@bitbucket.org

然后我再次克隆。现在一切都很顺利


在尝试了许多这些修复失败后,我能够使用GitHub桌面应用程序克隆回购。


错误配置的~/。Ssh /config文件可以触发此错误。

GitHub的test命令基本上为我打印出了解决方案:

ssh -T git@github.com

/用户/ myUser /。第13行:错误的配置选项:something-that-did-not-make-sense