权限被拒绝(publickey)致命:无法从远程存储库读取。 同时克隆Git存储库
我无法克隆一个Git仓库,并得到这个错误:
krishna.soni@KRISHNACHANDRAS /c/Projects $ git clone http://stage.abc.com:10088/pqr http://<url>/<repository> Cloning into '<repository>'... fatal: could not read Username for 'http://<url>': No such file or directory
我读过Bitbucket,Windows和“致命的:无法读取密码” ,但仍然有问题。
我继续进行,但现在得到这个错误
sh.exe": chown: command not found krishna.soni@KRISHNACHANDRAS /c $ git clone ssh://krishna.sonipayu.in@stage.payupaisa. /projects Cloning into 'C:/projects'... Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. > krishna.soni@KRISHNACHANDRAS /c > $ git clone ssh:<url> > ts > Cloning into 'C:/projects'... > Permission denied (publickey). > fatal: Could not read from remote repository. Please make sure you have the correct access rights
并存在存储库。
它看起来像一个权限问题 – 不是Windows 7的问题。
你的ssh密钥没有被授权 – Permission denied (publickey)
。
您需要创build一个公共ssh密钥,并要求Git存储库的pipe理员添加ssh
公钥
有关如何执行此操作的信息: 保存ssh密钥失败
对于刚刚尝试获取存储库但不关心协议(ssh / https)的人来说,您可能只想使用https而不是ssh (如果支持的话)。
所以例如你使用
git clone https://github.com/%REPOSITORYFOLDER%/%REPOSITORYNAME%.git
代替
git clone git@github.com:%REPOSITORYFOLDER%/%REPOSITORYNAME%.git
如果在创buildSSH并将其添加到您的Bitbucket帐户或任何地方后仍然存在问题,则需要在GitBash,OSX或Linux上执行以下操作:
ssh-add -l
然后,如果您没有看到列出的密钥,请添加:
ssh-add ~/.ssh/identity
这对我有效。
我也面临同样的问题。 我做了以下,它为我工作:
- 从Windows上的GIT GUI客户端生成密钥。 将此密钥复制到剪贴板。
- 在
bitBucket/
git网站上打开您的帐户,并将此密钥添加到您的个人资料。 这样,服务器就知道你是从合法系统访问的合法用户。 - 而已。 所有的推送命令从此为我工作。
我面临与GitHub相同的问题。 这很容易解决。
- 在您的计算机上生成SSH密钥,如下所述: 生成SSH密钥 。
- login你的GitHub帐户: GitHublogin 。
- 在您的帐户中,添加新生成的SSH密钥: 我的帐户SSH密钥 。
- 再次尝试
git clone
该项目。
Github(或者Bitbucket)在他们的服务器上找不到你的ssh密钥。
只需在您的帐户设置中添加您的密钥。
我在Mac上遇到了这个问题 – 在重新启动后(而且有些时候Mac处于停顿状态),我正确地设置了SSH来访问我的Git存储库,所有的凭据都被删除了。 显然,由于某种原因,pub key被设置为644,导致它被从keychain中删除。 阅读:
-
chmod 600
公钥 -
ssh-add ~/.ssh/[your private key]
– 这应该显示已添加身份。 你想要的密钥文件是没有.pub扩展名的文件。 -
ssh-add -l
显示你新增的身份
编辑:显然MacOS具有删除键的趋势 – 下载后高Sierra的更新(但我还没有安装它)我的钥匙已被删除,我不得不通过ssh-add
再次ssh-add
您需要通过运行ssh-keygen -t rsa
来创build一个新的ssh密钥。
从Windows命令行运行git clone
命令时遇到同样的问题。 但是该命令从Git Bash成功运行。
我得到了错误…
Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
…当我试图从Git Bash提示与Bitbucket进行联系后,我的笔记本电脑死于Windows 10的不正常更新,并返回到出厂设置。 我从备份中恢复了所有的ssh文件。
计算机重build后,错误的原因certificate是我的Windows帐户名称不匹配。 我了解到,公钥文件id_rsa.pub
以一个易读的string结尾,其中包含我的Windows帐户名称,后跟@
符号,然后是计算机名称。
当我最初设置我的电脑时,我创build了我的Windows帐户名称,包括我的初始名称,但是当我的电脑重置为出厂设置时,我们新的DevOps人员创build了我的帐户名称,但没有中间名。
为了解决这个问题,我简单地编辑了我的公钥文件id_rsa.pub
并在末尾删除了名字中的中间部分。 我坚持使用相同的计算机名称,所以没问题。 我将文件内容复制到Windows剪贴板。 然后,我login到Bitbucket,去我的头像Bitbucket设置,并添加一个新的公共密钥粘贴在新的内容。
回到Git Bash提示符,我确认了它现在通过input命令来工作…
ssh -T git@bitbucket.org
…我收到了我login的消息。
对于我来说,当我想从我的存储库克隆 ,我有相同的信息之前发现“权限被拒绝(公钥)致命:无法读取远程存储库”。 我的情况下解决scheme是不克隆之前使用sudo就是这样。
如果全部失败,就像我一样,卸载GIT,重新安装。 出于某种原因,这修复。
PS
- 我尝试生成新的密钥和SSH公钥更新
- 还尝试删除所有的密钥,并试图创build一个新的密钥。
- 而不,没有错,我的.gitconfig
在克隆时,我有一个类似的问题[我的错误:权限被拒绝(公钥)。 致命的:无法从远程存储库读取。 请确保你有正确的访问权限..等等]
– 在我的情况下,我使用的是bitBucket / UBUNTU14.04,但是ALREADY有一组我以前生成的密钥文件,而且我更改了文件的名称。 我只是将文件复制到标准的id_rsa&id_rsa.pub名称格式。 然后,我重新运行命令与问题。
OBTW : 我也可以使用HTTP风格的克隆来使用密码提示。
我在Linux上有类似的问题。 我通过login到github服务器并创build一个部署密钥解决了这个问题。 这是在存储库的设置。 然后,我复制并粘贴我的公钥(通常在〜/ .ssh / id_rsa.pub中,但是您的configuration可能不同)。 有一个checkbox来给这个密钥写入权限。 点击它(除非你使用git来部署,在这种情况下,不要点击它)。
如果您生成新的公共ssh密钥并将其插入到bitbucket或github和
它没有帮助 – 请尝试重新启动您的电脑 。 它帮助了我!
在macOS中:要进行身份validation,您需要在您的用户设置中将您的SSH密钥对的公共部分添加到bitbucket:用户设置 – > SSH密钥在您的〜/ .ssh目录中,通常是id_rsa.pub
它将帮助您生成一个,如果你还没有一个
在mac中,你需要把这个添加到你的〜/ .ssh / config文件中
Host bitbucket.org IdentityFile ~/.ssh/my_key_filename
其中my_key_filename
是您的SSH密钥对的私有部分,如果您还没有搞砸它,通常默认名称是:id_rsa
这可能是愚蠢的,但它发生在我们身上:
如果您正在使用bitbucket和Sourcetree,而您只是将克隆URL粘贴到新的回购对话框,则在拉动或推动时会显示相同的错误。
确保你在URL之前删除了“git clone”。