mac中git创建秘钥

#背景
从git上通过idea工具clone了一个项目,但是在提交代码的时候发现提示错误,错误代码大致如下

git@github.com: Permission denied (publickey)

找了下原因发现是没有公钥导致的,之前安装git并clone下代码之后没有进行提交,觉得没问题了,发现还是省不得操作啊。

#解决方法

通过生成一个公钥配置到git账号里面的ssh那个菜单就ok了

#具体步骤

1.通过ssh -T git@github.com进行测试查看有没有公钥,如果没提示就会出现和我一样的情况

2.通过命令直接生成公钥

ssh-keygen -t rsa -b 2048 -C “youreamil@email.com” 

3.执行完之后会出,此步是让你输入自定义的文件名,这里不用管他,默认就好,直接回车进行下一步骤

Generating public/private rsa key pair. 
Enter file in which to save the key (/home/xxx/.ssh/id_rsa):

4.然后会出现如下提示,这步是让你输入一个密码,密码会在提交代码使用(这里除了下面一步,我提交代码时没使用这个密码),不想设置就直接回车(这步我没有尝试),如果不能默认
那就输入一个然后记住吧。与git密码相同好记忆

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

5.然后就创建成功了你会看到提示,还有其他一些输出,这里就不写了

Your identification has been saved in /home/xxx/.ssh/id_rsa. 
Your public key has been saved in /home/xxx/.ssh/id_rsa.pub. 

6.在成功后把秘钥交给ssh-agent管理

ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序。
ssh-agent是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。

先确认ssh-agent处于启用状态:

eval “$(ssh-agent -s)”

输出类似于:

Agent pid xxxxx

然后将SSH key添加到ssh-agent:

ssh-add ~/.ssh/id_rsa

这时又会要你输入上面定义的密码:

Enter passphrase for /home/xxx/.ssh/id_rsa: 

输入,回车

7.打开秘钥所在文件/.ssh,找到默认文件id_rsa.pub

open ~/.ssh  

8.把文件内容复制,并添加到你邮件注册的git中,具体路径 git登陆->settings->ssh and GPG keys->new ssh key -> title 随便输入,自己认识就好,key 填写之前生成的公钥->保存

9.完毕

#碰到的问题以及解决方法

1.mac中直接访达当爱你用户文件找不到/.ssh,通过命令行打开的
2.提交代码出现提示,找了下是host没有地址xxx所致,加进去就好了(这个错误在我这里偶尔出现)

Warning: Permanently added the RSA host key for IP address 'xxxxxxxx' to the list of known hosts.

解决:

vim /etc/hosts

添加一行:xxx.xxx.xxx.xxx  github.com