本文参考自壮壮同学的文章http://www.jianshu.com/p/1fc8940f114b
为 Git 远程仓库配置 SSH Key 的方法
首先,为何要配置 SSH Key ?从 Git 远程仓库 clone 代码的方式有两种,一种是 Https ,另一种是 SSH 。如果使用 Https 方式,不需要任何配置,但是当你 clone 下来后会发现,每次 commit 提交代码,都需要你输入 Git 远程仓库的密码(使用终端操作会这样,有些 Git 管理客户端可能不会),这样就极大的影响了我们的工作效率。这时候就需要使用 SSH 方式了,使用这种方式就不再需要每次都输入密码这么麻烦了,但是需要配置 SSH Key ,配置方法请看下面。
1. 查看是否已经生成过 SSH Key
ls ~/.ssh
如果如下图显示有 id_rsa 和 id_rsa.pub 这两个文件,就表示已经生成过,可以直接跳过 生成 SSH Key 这一步。
2. 生成 SSH Key
如果上一步验证没有生成过 SSH Key 的话,就输入以下命令来生成 SSH Key :
/* 下面邮箱改成你自己的个人邮箱就行 */
ssh-keygen -t rsa -C "292710547@qq.com"
第一次生成的话,直接一路回车,不需要输入密码。不是第一次生成的话,会提示 overwrite (y/n)? 问你是否覆盖旧的 SSH Key ,直接填 y ,然后一直回车就行了,出现如下图就代表 SSH Key 已经生成。
生成以后,~/.ssh 路径下会多出 id_rsa 和 id_rsa.pub 这两个文件, id_rsa 中存的是私钥, id_rsa.pub 中存的是公钥。
3. 将私钥添加到 ssh-agent
输入以下命令打开 ssh-agent :
eval "$(ssh-agent -s)"
输入以下命令将私钥添加到 ssh-agent:
ssh-add ~/.ssh/id_rsa
4. 将公钥添加到远程仓库
以 GitHub为例,使用文本编辑器打开 ~/.ssh
路径下 id_rsa.pub
这个文件,将里面的公钥复制,然后打开 GitHub
的个人设置,如下图将公钥添加即可。
注意: ~/.ssh这个文件夹是默认隐藏的,如果找不到的话可以使用以下命令,直接复制 id_rsa.pub 中的内容。
/* macOS 系统 */
pbcopy < ~/.ssh/id_rsa.pub
/* windows 系统 */
clip < ~/.ssh/id_rsa.pub
/* Linux 系统 */
sudo apt-get install xclip
xclip -sel clip < ~/.ssh/id_rsa.pub
添加完 SSH Key 以后,你就可以开始使用 SSH 方式 clone 代码了,之后 commit 提交代码再也不用输入密码了,但是如果你之前代码是用 Https 方式 clone 下来的,需要用 SSH 方式重新 clone 一下,或者修改 .git 文件夹下 config 中的 url 才行,如何修改我就不说了,嫌麻烦就直接重新 clone 吧。
具体方法就是这样,并不麻烦,一般来说一台电脑只需要生成一次 SSH Key 就行了,不同的 Git 远程仓库都添加这同一个 SSH Key 就行了,有什么问题或者建议可以提出来。
如果发现不能使用SSH,只能使用HTTPS也能解决,具体看这篇解决SourceTree HTTPS每次push都要输密码