使用Git时如何解决权限被拒绝(公钥)错误?

我在Mac Snow Leopard上,而且刚刚安装了githtml

我刚试过 node

git clone git@thechaw.com:cakebook.git

但这给了我这个错误: git

Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我想念什么?
我也尝试过使用ssh-keygen而不设置密码,可是仍然存在相同的错误。 github


#1楼

基本的GIT指令未引用SSH密钥。 经过上面的某些连接,我找到了一个git帮助页面,该页面逐步解释了如何针对各类操做系统执行此操做(该连接将检测到您的操做系统并进行相应的重定向): 服务器

http://help.github.com/set-up-git-redirect/ ssh

它遍历了GITHub所需的全部内容,并给出了详细的解释,例如“为何在建立RSA密钥时添加密码短语”。 我想我会发布它,以防它帮助别人... 加密


#2楼

使用来自Github的ssh连接,但请确保不使用ssh附加它,而只需使用git hub上的ssh选项卡能够克隆仓库便可。 spa


#3楼

在Windows上,确保全部应用程序在HOME上均一致。 Msys不会为您作到这一点。 我必须设置一个环境变量,由于ssh和git彷佛没法在个人.ssh目录所在的位置上达成一致。 操作系统


#4楼

请注意(至少对于某些项目而言), 您必须具备带有ssh key的github账户代理

查看认证代理中列出的密钥( ssh-add -l
(若是看不到任何内容,请使用ssh-add / path / to / your / key添加您现有的键之一(例如: ssh-add〜/ .ssh / id_rsa ))
(若是您没有任何密钥,请先建立一个。请参阅: http : //rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html或仅是谷歌ssh-keygen)

要验证您是否具备与github账户关联的密钥

前往: https//github.com/settings/ssh

您应该至少看到一个键,该键的哈希键与您刚在一分钟前键入ssh-add -l时看到的哈希之一匹配。

若是不这样作,请添加一个,而后重试。


#5楼

当您访问SSH URL(读/写)而不是Git只读URL时,可能会发生此错误,可是您对该存储库没有写权限。

有时,您只想克隆本身的存储库,例如,部署到服务器。 在这种状况下,您实际上仅须要只读访问权限。 可是因为这是您本身的存储库,所以若是您愿意,GitHub可能会显示SSH URL。 在这种状况下,若是远程主机的公共密钥不在GitHub SSH密钥中,则将拒绝您的访问, 这将有望发生

一个等效的状况是,当您尝试克隆没有使用SSH URL的写访问权的其余用户的存储库时。

简而言之, 若是您打算仅克隆存储库,请使用HTTPS URLhttps://github.com/{user_name}/{project_name}.git git@github.com:{user_name}/{project_name}.git )而不是SSH URL( git@github.com:{user_name}/{project_name}.git ),它避免了(没必要要的)公共密钥验证。


更新:GitHub如今显示HTTPS为默认协议,此举可能会减小SSH URL的滥用。

相关文章
相关标签/搜索