git提交不用每次都输入用户名密码

克隆项目二种方式:git

1. 使用https url克隆,   复制https url 而后到 git clone https-urlgithub

2.使用 SSH url 克隆却须要在克隆以前先配置和添加好 SSH key, 你必须是这个项目的拥有者。不然你是没法添加 SSH key 的。shell

 

https 和 SSH 的区别:

一、前者能够随意克隆github上的项目,而无论是谁的;然后者则是你必须是你要克隆的项目的拥有者或管理员,且须要先添加 SSH key ,不然没法克隆。ssh

二、https url 在push的时候是须要验证用户名和密码的;而 SSH 在push的时候,是不须要输入用户名的,若是配置SSH key的时候设置了密码,则须要输入密码的,不然直接是不须要输入密码的。编辑器

 

 

 

在 github 上添加 SSH key 的步骤:

一、首先须要检查你电脑是否已经有 SSH key 

运行 git Bash 客户端,输入以下代码:ide

$ cd ~/.ssh
$ ls

这两个命令就是检查是否已经存在 id_rsa.pub 或 id_dsa.pub 文件,若是文件已经存在,那么你能够跳过步骤2,直接进入步骤3。测试

 

二、建立一个 SSH key 

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

代码参数含义:url

-t 指定密钥类型,默认是 rsa ,能够省略。
-C 设置注释文字,好比邮箱。
-f 指定密钥文件存储文件名。spa

以上代码省略了 -f 参数,所以,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如:code

Generating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]

固然,你也能够不输入文件名,使用默认文件名(推荐),那么就会生成 id_rsa 和 id_rsa.pub 两个秘钥文件。

 

接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),

固然,你也能够不输入密码,直接按回车。那么push的时候就不须要输入密码,直接提交到github上了,如:

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

接下来,就会显示以下代码提示,如:

Your identification has been saved in /c/Users/you/.ssh/id_rsa.
# Your public key has been saved in /c/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

当你看到上面这段代码的收,那就说明,你的 SSH key 已经建立成功,你只须要添加到github的SSH key上就能够了。

 

三、添加你的 SSH key 到 github上面去

a、首先你须要拷贝 id_rsa.pub 文件的内容,你能够用编辑器打开文件复制,也能够用git命令复制该文件的内容,如:

$ clip < ~/.ssh/id_rsa.pub

b、登陆你的github帐号,从又上角的设置( Account Settings )进入,而后点击菜单栏的 SSH key 进入页面添加 SSH key。

c、点击 Add SSH key 按钮添加一个 SSH key 。把你复制的 SSH key 代码粘贴到 key 所对应的输入框中,记得 SSH key 代码的先后不要留有空格或者回车。固然,上面的 Title 所对应的输入框你也能够输入一个该 SSH key 显示在 github 上的一个别名。默认的会使用你的邮件名称。

 

四、测试一下该SSH key

在git Bash 中输入如下代码

$ ssh -T git@github.com

当你输入以上代码时,会有一段警告代码,如:

The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?

这是正常的,你输入 yes 回车既可。若是你建立 SSH key 的时候设置了密码,接下来就会提示你输入密码,如:

Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':

固然若是你密码输错了,会再要求你输入,知道对了为止。

注意:输入密码时若是输错一个字就会不正确,使用删除键是没法更正的。

密码正确后你会看到下面这段话,如:

Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.

若是用户名是正确的,你已经成功设置SSH密钥。若是你看到 “access denied” ,者表示拒绝访问,那么你就须要使用 https 去访问,而不是 SSH 。

相关文章
相关标签/搜索