为什么要配置公钥和私钥:
Git使用https协议,每次pull, push都要输入密码,相当的烦。
使用git协议,然后使用ssh密钥。这样可以省去每次都输密码。
公钥我们一般是给服务器的,他们到时候在权限中加入我给的公钥,然后当我从远地仓库中下载项目的时候,我在git clone xxx
的时候,那个服务器我通过他的绑定的公钥来匹配我的私钥,这个时候,如果匹配,则就可以正常下载,如果不匹配,则失败.
大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个。
配置SSH keys
生成SSH Keys
打开终端
-
输入命令
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
$ # 告诉你已经生成了公交和私钥 $ Generating public/private rsa key pair.
$ # 让你输入一个名字来保存内容,不用管,直接回车 $ Enter file in which to save the key (/Users/lidaze/.ssh/id_rsa):
# 输入一次密码 Enter passphrase (empty for no passphrase): # 再输入一次密码 Enter same passphrase again:
# 你的私钥已经保存在 /Users/lidaze/.ssh/id_rsa. Your identification has been saved in /Users/lidaze/.ssh/id_rsa. # 你的公钥已经保存在 /Users/lidaze/.ssh/id_rsa.pub. Your public key has been saved in /Users/lidaze/.ssh/id_rsa.pub.
检查SSH Keys
打开终端
-
输入命令
# 显示出在.ssh文件下的文件,如果存在的话 $ ls -al ~/.ssh
-
检查是否存在以下文件
- github_rsa
- github_rsa.pub
- id_rsa
- id_rsa.pub
- known_hosts
如果不存在以上文件,则需要重新生成
添加SSH Keys
到github账户中
-
拷贝公钥
# 拷贝~/.ssh/id_rsa.pub文件内容到剪贴板 $ pbcopy < ~/.ssh/id_rsa.pub
粘贴出来内容如下:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC019j/q2jJDqdargVVIUyLeKnTRua69RAPmAP1nSfoPe5kVmxu/5UqWIjU9gGAgxT+DOUGK6GJrQAutAI2bZ7sEl1PZ/deUcIUGl6hyyECo6u7uNe+TmoyrSMn08PgD1L+UtBQPOZAwRTmlxJ7y+tjG2Q0M7n/g6b0rtxkoFg24qhOPhWbuESgZT6jF6iSEFeBa0U7YTLqzCGLwSN8KwbJuGH+u/fNnu3v1gs78IOvqtjqqUO0rxXFp4TcoIuQInx5E2bQcqeFdwg4dKaceH+WRQFGSDShAE39vI+e+LH0EbxZVOVyzqnu/gSxEs1A3VyRVrgFk8msKGfwS/GeB/iwh9f8FFFhFPpC5ie674KjSAnBvsxAN0non+UuhHQWvjwhmXxJDVQoiIXvjwmMlrBF484GZpwdTBzuHWz/aK8RdwMRxKmb8cZ8X1UfvwYBRf4kR6iJDjCYz/33f/gD/AVTuMkgqdXJxrrqaBFvYLP6yH97csAS6/pukWRAhPPwrSj6Su+/ZKq4UjW4fThEg8cbKNOvEeuUmJXArVaeM8mYFobiUjylOKmwmjEMAdq3+ps8icNHYjf0IS1enExkkTHMqrtqIlI0ptMqSG4wyRhGj9cGjH1D6curi1C+GwJiQ9P8jBksXDW5a/a7CIGiyn5UQdZ3reEXQZ0g91pB4o9iZCQ== mail@lidaze.com
依次打开
Github网站
->Settings
->SSH And GPG Keys
点击
New SSH Key
按钮-
添加
Title
和Key
-
Title
: 随便输入即可,如果是我自己的电脑,则可以输入lidaze macbook
-
Key
: 粘贴即可
-
重新输入Github的密码即可
测试SSH的连接
打开终端
-
输入命令
$ ssh -T git@github.com
$ # 输入一遍密码 $ Enter passphrase for key '/Users/lidaze/.ssh/id_rsa':
$ # 看到这样的内容,就代表成功啦 $ Hi lidaze! You've successfully authenticated, but GitHub does not provide shell access.