我用的是Mac雪豹,刚刚安装了git。

我只是试了

git clone git@thechaw.com:cakebook.git

但这给了我这个错误:

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

我错过了什么? 我也试过做ssh-keygen没有密码,但仍然错误。


当前回答

可能是public/private配置不正确。请按照步骤来做。 在窗口任意位置执行命令

ssh-keygen -o -f ~/.ssh/id_rsa

现在转到c://users/xyz/。Ssh /打开id_rsa密钥(路径可能不同) 现在转到gitlab和用户配置文件>设置>ssh密钥,并在这里添加您的密钥。 现在试试克隆

其他回答

让我也分享一下我的经验,

我试图从Gerrit回购中克隆一些项目,我在帐户设置中获得了我的公钥。

在第一次尝试克隆git时,我得到了以下错误:

Unable to negotiate with XX.XX.XX.XX port XXX: no matching key exchange
method found. Their offer: diffie-hellman-group1-sha1

我发现我需要通过SSH选项-oKexAlgorithms=+diffie-hellman-group1-sha1以某种方式来git克隆。

希望GIT_SSH_COMMAND环境变量完成了这项工作:

export GIT_SSH_COMMAND="ssh -oKexAlgorithms=+diffie-hellman-group1-sha1"

但是git克隆仍然没有开始工作。现在它抛出(关于主题):

Permission denied (publickey).

我已经得到SSH密钥,不想重新生成它们。我检查了普通的SSH连接到主机,它是ok的:

****    Welcome to Gerrit Code Review    ****

  Hi XXXXX, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:

  git clone ssh://xxxxx@xx.xx.xx:xxx/REPOSITORY_NAME.git

我有点困惑。我重新开始并通过-vvv选项打开SSH的调试。我看到了下面这些:

debug1: read_passphrase: can't open /dev/tty: No such device or address

可能,这是GIT_SSH_COMMAND env变量的开销-我的密钥是用passphrase保护的(我在检查登录到git repo主机时输入了它)。

所以,我决定去掉这个短语。一个简单的命令帮助了我:

ssh-keygen -p

然后,我输入了我的“旧密码”的密码短语,并在“新密码”上按了两次ENTER键,让它空着,即根本没有密码短语,并确认我的选择。

之后,我在本地磁盘上获得了新克隆的回购。

视觉指南(Windows)

1 / 2。Git批处理端

1.1. 打开git批处理(下载她)

1.2. 粘贴下面的文本(更改到您的GitHub帐户电子邮件)

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

1.3. 按Enter(接受默认文件位置)

1.4. 单击Enter两次(或设置SSH密钥passphrases - Gitbub passphrases docs)

> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

1.5. 键生成:

您的身份信息已保存在/c/Users/user/.ssh/id_rsa…

1.6. 将SSH密钥复制到剪贴板。

$ clip < ~/.ssh/id_rsa.pub

2 / 2。Github网站用户端

在用户设置下

SSH和GPG密钥=>新的SSH密钥:

粘贴步骤1.6中的代码

:完成)


如果有人不想使用SSH,请使用HTTPS:

Github docs: https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh

我得到这个错误,因为我生成的ssh密钥与错误的电子邮件。我可以使用ssh连接,但不能使用git。解决方案是使用我的github帐户的主要电子邮件地址重新生成密钥。

当我试图运行一个makefile时,我得到了类似的权限拒绝(publickey)错误。

作为上述SSH步骤的替代方法,您可以安装本地GitHub for Mac应用程序。

点击下载GitHub for Mac从- https://help.github.com/articles/set-up-git#platform-mac

一旦你用你的git hub帐户完成了设置(我也安装了git hub命令行工具,但不确定是否需要这一步),然后我收到了一封电子邮件-

[GitHub]一个新的公钥已添加到您的帐户

我的错误被纠正了。

这对我很管用。

您的公钥保存到id_rsa.pub;文件中,并且是您上传到您的帐户的密钥。您可以通过运行以下命令将此键保存到剪贴板:

笔记本电脑

复制SSH密钥到剪贴板,返回web门户。 在SSH Key字段中,粘贴您的SSH密钥。 在Name字段中,为键提供一个名称。 保存。