git使用SSH进行认证链接并解决github的push每次都需要输入用户名和密码

每次push推送都需要输入用户名密码进行push非常麻烦,配置了SSH的话就能够免除这些繁琐的步骤了。

而在github上创建了ssh key,并成功启用后,每次push仍然需要输入用户名密码。

那原因是之前默认用了https的方式进行push了,下面也会把它替换成ssh方式推送。

配置SSH

1.创建SSH key

//先到用户主目录下查看是否已经生成过ssh key
cd ~/.ssh
//如果没有使用下面语句创建SSH key
ssh-keygen -t rsa -C "youremail@host.com"
//一路回车,如果有需要可以设置密码

完成后我们可以在用户主目录里的.ssh文件夹下找到id_rsa(私钥)和id_rsa.pub(公钥)两个文件。

2.添加到Github

登陆到Github,在settings的SSH and GPG keys中点击new SSH key,填写任意Title后,就爱那个id_rsa.pub中所有内容添加到文本框中,点击Add Key就可以看到自己添加的Key了。

//测试
ssh git@github.com

如果显示

Hi username! You have successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

就表示成功了。

替换push方式

进入指定的git文件夹,在terminal中输入git remote -v

就能够看到各个路径的push、fetch方式,比如:

origin https://github.com/username/demo.git (fetch)

origin https://github.com/username/demo.git (push)

我们可以用下列语句把它换成ssh方式的:

1. git remote rm origin

2. git remote add origin git@github.com:username/demo.git

3. git push origin master