以下命令在git里运行
设置Git的user name和email:(如果是第一次的话)
1 | git config --global user.name "nxxxx" |
检查是否已经有SSH Key。
1 | cd ~/.ssh |
接着输入ls
1 | ls |
列出该文件下的文件,看是否存在 id_isa 和 id_isa.pub 文件(也可以是别的文件名,只要 yourName 和 yourName.pub 承兑存在),如果存在的话,证明已经存在 ssh key了,可以直接跳过 生成密钥 这一步骤,
下图是存在的情况下
新生成密钥
1 | ssh-keygen -t rsa -C "txxxx@gmail.com.com" |
连续3个回车。如果不需要密码的话。
最后得到了两个文件:id_rsa和id_rsa.pub。
默认的存储路径是:
1 | C:\Users\Administrator\.ssh |
添加密钥到ssh-agent
确保 ssh-agent 是可用的。ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序,其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
1 | eval "$(ssh-agent -s)" |
添加生成的 SSH key 到 ssh-agent。
1 | ssh-add ~/.ssh/id_rsa |
登陆Github, 添加 ssh 。
把id_rsa.pub文件里的内容复制到这里
测试:
1 | ssh -T git@github.com |
你将会看到:
Hi xxxxx! You’ve successfully authenticated, but GitHub does not provide shell access.
如果看到Hi后面是你的用户名,就说明成功了。
github上传ssh-key后仍须输入密码的问题
这种事情通常发生在更换机器后克隆自己仓库的时候,通常我们会使用https方式克隆
git clone https://github.com/Name/project.git
这样便会在你git push时候要求输入用户名和密码
解决的方法是使用ssh方式克隆仓库
git clone git@github.com:Name/project.git
当如,如果你已经用https方式克隆了仓库,就不必删除仓库重新克隆,只需将 .git/config文件中的
url = https://github.com/Name/project.git
一行改为
url = git@github.com:Name/project.git
即可。
END