具体报错信息如下:
Push failed
Git@gitee.com: Permission denied (publickey).
Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
造成原因:公钥设置不当导致
解决方案:码云的公钥分别要设置两个位置,一个是部署公钥,一个是个人公钥
下面介绍两种公钥的生成方式:
部署公钥
你可以按如下命令来生成 sshkey:
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
注意:这里的 xxxxx@xxxxx.com 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。
按照提示完成三次回车,即可生成 ssh key。
通过查看 ~/.ssh/id_rsa.pub 文件内容,获取到你的 public key,如下图所示:
cat ~/.ssh/id_rsa.pub
复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。
添加后,在终端(Terminal)中输入
ssh -T git@gitee.com
如果出现如下示例,说明添加成功!
部署个人公钥
Mac/Linux 打开命令行终端, Windows 打开 Git Bash 。 输入ssh-keygen -t rsa -C “username@example.com”,( 注册的邮箱),接下来点击enter键即可(也可以输入密码)。
$ssh-keygen -t rsa -b 4096 -C "your_email@example.com" // 按回车enter
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
在前面标下划的对应目录下可以看到生成的公钥文件。
成功之后
Your identification has been saved in /Users/you/.ssh/id_rsa.
# Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
本地打开 id_rsa.pub 文件(或执行 $cat id_rsa.pub ),复制其中全部内容,添加到账户“SSH 公钥”页面 中,公钥名称可以随意起名字。
完成后在命令行测试,首次建立链接会要求信任主机。
$ ssh -T git@git.coding.net // 按回车enter
如果出现像部署公钥一样的命令行代表成功了!