原理

  1. 客户端使用 SSH 生成非对称密钥对,其中公钥信息保存在 GitHub 站点密钥中。
  2. 客户端发送数据「代码」前,使用本地私钥加密,GitHub 收到数据后,使用对应公钥解密得到源代码。

Windows 生成密钥对

  1. 安装 git 工具

  2. 右键选择「Git Bash here」,打开终端

  3. 进入 C:\Users\Administrator\.ssh 目录,没有则手动创建「Linux 为 ~/.ssh」

  4. 生成 key

    1
    2
    3
    ssh-keygen -t rsa -C "wangwz2012@sina.cn"

    连续按三次回车默认生成即可,在 ~/.ssh/ 目录下生成 id_rsa 和 id_rsa.pub
  5. 使用notepad++ 打开 id_rsa.pub,拷贝内容

  6. 登录 GitHub ,点击右上角头像,选择 Setting,点击 SSH and GPG keys,点击 New SSH key,Title 输入 wangwz2012@sina.cn「客户端账户标识」,将步骤5中拷贝内容粘贴至Key 文本域中,点击 Add SSH key

  7. 测试 ssh key 是否配置成功

    1
    2
    $ ssh -T git@github.com
    Hi wangwenzhe! You've successfully authenticated, but GitHub does not provide shell access.
  8. 查看 git 本地配置账号信息

    1
    2
    3
    4
    5
    git config --list 

    //如果 user.name 和 user.email 不存在,则配置如下
    git config --global user.name "你的用户名"
    git config --global user.email "你的公司或个人邮箱"
  9. 推送本地仓库数据至远程仓库

    1
    2
    3
    4
    1. git add .
    2. git commit -m "XXX"
    3. git remote add origin https://github.com/wangwenzhe/test.git
    4. git push origin master