配置ssh key
配置 GitHub SSH Key 其实是为了让你的电脑能通过 SSH 协议安全地访问 GitHub 仓库,而不用每次都输入 GitHub 的用户名和密码。这样,当你提交代码或拉取代码时,GitHub 就能通过 SSH Key 验证你的身份。下面是大白话的步骤和原理解释。
1. 生成 SSH 密钥对
SSH 密钥对由两部分组成:公钥和私钥。公钥是你上传到 GitHub 的,别人可以看到;私钥是你自己保管的,别人不能看到。
步骤:
-
打开终端(在 Windows 上可以使用 Git Bash 或者 WSL)。
-
输入以下命令生成 SSH 密钥:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"-t rsa: 表示使用 RSA 算法。-b 4096: 生成 4096 位密钥,越大越安全。-C "your_email@example.com": 用你的 GitHub 账号的邮箱作为注释,方便标识。
-
接下来,终端会提示你选择存储路径(按 Enter 就是默认存储在
~/.ssh/id_rsa),如果提示已有文件,可以选择覆盖或选择另存为一个新名字(例如id_rsa_github)。 -
然后会要求你设置一个密码,这可以保护你的私钥。可以留空,但不推荐
原理:
- 生成的公钥和私钥是成对存在的,公钥可以分享给任何人,私钥则需要保密。GitHub 通过公钥验证你的身份,而你的电脑通过私钥进行身份认证。
2. 将公钥添加到 GitHub
接下来,你需要将公钥上传到 GitHub 上,告诉 GitHub 你是这个公钥的所有者。
步骤:
- 使用以下命令查看公钥内容:
cat ~/.ssh/id_rsa.pub
2.复制公钥内容(包括 ssh-rsa 开头到你邮箱的部分)。
3.打开 GitHub,登录你的账号,进入 SSH and GPG keys 页面。
4.点击 New SSH key,然后粘贴你刚刚复制的公钥到 Key 栏,给它起个名字(比如:My Laptop),然后点击 Add SSH key。
原理:
- 你将公钥添加到 GitHub 之后,GitHub 就知道了只有持有对应私钥的电脑才能通过 SSH 协议进行认证,这样就保证了安全性。
3. 测试 SSH 连接
现在,你已经将公钥添加到 GitHub,接下来可以测试一下连接是否成功。
步骤:
1.在终端输入以下命令,测试是否能通过 SSH 连接到 GitHub:
ssh -T git@github.com
2.第一次连接时,系统会询问是否继续连接,输入 yes。
3.如果成功,你会看到类似下面的输出:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
原理:
- 这个命令会尝试通过 SSH 协议连接到 GitHub 的服务器。如果你成功连接,表示身份验证通过。GitHub 会用你的公钥来确认你是注册时提供了这个公钥的人。
4. 配置 Git 使用 SSH(可选)
如果你以前是使用 HTTPS 来连接 GitHub 仓库的,你需要将 Git 的远程仓库 URL 修改为 SSH 方式。
步骤:
-
打开终端,进入你本地的 Git 仓库目录。
-
输入以下命令来修改远程仓库地址:
git remote set-url origin git@github.com:username/repository.git
记得将 username 和 repository 替换成你自己的 GitHub 用户名和仓库名。
3.使用以下命令确认是否修改成功:
git remote -v
输出应该是以 git@github.com 开头的地址。
原理:
- 这样配置后,你的 Git 会使用 SSH 协议(而不是 HTTPS)与 GitHub 通信。通过 SSH,你不需要每次都输入用户名和密码,而是通过 SSH 密钥进行认证。
小结
通过这些步骤,你就完成了配置 GitHub 的 SSH Key,能够通过 SSH 协议安全地与 GitHub 仓库交互。这个过程的核心原理是利用公钥加密和私钥解密来验证身份,从而确保安全性,避免每次操作都输入用户名和密码。
通过 SSH 拉取 GitHub 上的代码
通过 SSH 拉取代码其实和普通的 Git 拉取代码类似,只是使用的是 SSH 协议,而不是 HTTPS 协议。因为你已经配置好了 SSH Key,所以每次拉取代码时,Git 会使用 SSH 密钥进行身份验证,而不需要输入用户名和密码。
1. 确保本地已经配置 SSH Key
- 确保你已经按照之前的步骤配置了 SSH 密钥并且将公钥添加到 GitHub。如果没有完成这一步,SSH 连接就不会成功。
2. 获取 GitHub 仓库的 SSH 地址
- 打开你在 GitHub 上想要拉取的仓库页面。
- 点击页面上的 **Code** 按钮,选择 **SSH** 选项卡,复制显示的仓库 SSH 地址。例如:
```scss
git@github.com:username/repository.git
```
3. 克隆仓库到本地
- 在终端(或 Git Bash)中,进入你想要保存代码的目录。
- 使用以下命令来克隆仓库:
git clone git@github.com:username/repository.git
-
记得将
username和repository替换为你自己的 GitHub 用户名和仓库名。 -
Git 会通过 SSH 协议连接到 GitHub 仓库,并使用你本地的私钥进行身份验证
4. 拉取最新代码(如果仓库已经克隆)
- 如果你已经克隆了仓库并且想要拉取最新的代码,可以使用以下命令:
git pull origin main
其中,main 是默认的主分支(如果你的仓库使用的是其他分支名称,比如 master,请相应替换)。
原理解释:
-
当你执行
git clone或git pull命令时,Git 会尝试使用你在本地生成的 SSH 密钥对 GitHub 进行身份验证。具体来说:- Git 向 GitHub 服务器发送连接请求。
- GitHub 根据你上传的公钥判断是否允许连接。
- 如果身份验证成功,GitHub 会允许访问仓库,Git 就可以将仓库内容克隆到本地或拉取最新的提交。
由于 Git 使用 SSH 协议,不需要每次都输入用户名和密码,而是通过 SSH 密钥对进行安全认证。
小结:
通过 SSH 拉取代码,只需使用 git clone 或 git pull 命令,并确保远程仓库的 URL 是 SSH 格式。Git 会自动使用你配置的 SSH 密钥与 GitHub 进行身份验证,避免每次操作时都需要输入用户名和密码。