Git 学习笔记(Github 的 SSH 配置)

Git 是分布式的代码管理工具,本地 Git 仓库和 GitHub 仓库之间的传输是通过 SSH 加密的,因此需要配置 SSH。

Git 支持多种协议,包括 https,但通过SSH支持的原生 Git 协议速度最快,并且提交代码时不需要每次输入用户名密码。

  • 创建 SSH keys

在用户主目录下,查找是否存在.ssh目录,若存在,再看看这个目录下有没有 id_rsa 和 id_rsa.pub 这两个文件,如果已经有了,可直接跳到下一步。如果没有,执行以下命令创建 SSH keys:

ssh-keygen -t rsa -C "[email protected]"

接下来一直回车,使用默认值即可,无需自己设置密码。如令执行成功后,可以在用户主目录里找到 .ssh目录,里面有 id_rsa 和 id_rsa.pub 两个文件,这两个就是 SSH Key 的密钥对,id_rsa 是私钥,不能泄露出去,id_rsa.pub 是公钥,可以告诉其他人,效果图如下所示:

anyang@anyang:~/anyang/learngit$ cd ~
anyang@anyang:~$ ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/anyang/.ssh/id_rsa):
Created directory '/home/anyang/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/anyang/.ssh/id_rsa.
Your public key has been saved in /home/anyang/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:7atG/8A6Zm5+CFNDwLA0KBFrKB512Z08gWtD15gGYPk [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|oo o+*o=. |
|o.o.o=.+.X . |
|++ . o.+ . |
|+ . Eo. |
| . ..S.. |
| o .o |
| + o+ |
| B.oo |
| B=+... |
+----[SHA256]-----+
anyang@anyang:~$ cd .ssh/
anyang@anyang:~/.ssh$ ls
id_rsa id_rsa.pub

  • 登陆 GitHub,打开“Settings”页面,切换到“SSH and GPG keys”标签页,点击“New SSH key”,输入Title(自己起名)和 key(id_rsa.pub 文件的内容),点击“Add SSH key”即可,如下所示:
Git 学习笔记(Github 的 SSH 配置)_第1张图片
SSH key.png

SSH key 能够帮助 GitHub 识别出提交内容是否是所属用户提交的,而不是别人冒充的,这样有效地提高了远程仓库的安全性。GitHub 允许添加多个 Key,从而实现单用户多处提交功能。

  • 输入以下内容进行测试:

ssh [email protected]

若输出信息如下所示,则配置成功。

Warning: Permanently added the RSA host key for IP address '192.30.253.112' to the list of known hosts.
PTY allocation request failed on channel 0
Hi anyang! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

相关资料:

  1. Git 官网
  2. Git 官方文档
  3. [廖雪峰的 Git 教程](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8
    067c8c017b000)
  4. Git 常用命令查询文档
  5. Git 在线学习网址

你可能感兴趣的:(Git 学习笔记(Github 的 SSH 配置))