为了避免每次提交都输入用户名和密码,大多数 Git 服务(比如 GitHub、GitLab 和 BitBucket等)都提供 SSH 公钥认证。要实现公钥提交,需要先生成 SSH 密钥组(公钥和私钥),再把公钥上传到服务器即可。
生成公钥
在 Linux 和 Mac 系统,用户的密钥保存在 ~/.ssh
目录下。先在该目录下判断公钥 id_dsa
和私钥 id_dsa.pub
文件是否存在。如果不存在,则需要事先生成。
要生成公钥和私钥,在终端执行
ssh-keygen
然后一些选项,这时按回车键即可。这时再查看 ~/.ssh
目录,就会发现密钥已经生成好了。
公钥设置
这里以 GitHub 为例,讲一下公钥的设置方法。
在 Github 的设置页面,找到 SSH and GPG keys
设置。
点击 New SSH key
查看公钥的内容并复制
填写表单并保存(Title 可以随便填写)
这样,公钥就被添加到 GitHub 上了,以后每次提交的时候就不用那么麻烦的输入用户名和密码了。
Happy Coding with Git!
注意
要说明的一点就是,一个密钥只能由一个 GitHub 账号使用,不能同时添加到多个 GitHub 账号中。
另外GitLab 和 BitBucket 等 Git 服务的 SSH 密钥配置跟 GitHub 大同小异,找到 SSH 密钥设置并添加即可。
补充
** Windows 系统 **
关于 Windows 系统下 SSH 密钥的配制方法。
- 安装 Git;
- 打开 Git Bash;
- 执行
ssh-keygen
生成密钥组。 - 在用户目录下找到
.ssh
文件夹并打开。 - 用记事本打开
id_dsa.pub
文件,并复制到 GitHub 中。
** 自建服务 **
如果是自建的 Git 服务器,则需要把生成的密钥提交给服务器管理员,让管理员把密钥追加到 Git 用户 .ssh
目录下的 authorized_keys
文件即可。