GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输

文章目录

  • 摘要
  • 【配置 Git】
    • 配置用户名和邮箱
  • 【设置【SSH Key】加密传输】
    • 目的
      • https 和 SSH 的区别
    • Git 操作
    • GitHub操作
    • 测试【SSH Key】
  • 注意事项
  • 总结
  • 思考

摘要

  1. 硬件环境:无特殊要求
  2. 软件环境 :windows
  3. 讲解了如何将本地项目同步或源码库同步到GitHub上。
  4. 【点击此处查看 Git 的安装教程】
  5. 在 MIniTTY 终端中
    【 按 上下键 可以 翻阅 历史命令】
    【 按 Home 和 End 可以快速切换到 行首 和 行尾】
    【Delete 可以删除 后一个 字符】

【配置 Git】

优先级:--local > --global > --system
用了--global这个参数,表示你这台机器上所有的Git仓库都会使用这个配置 ?_?

配置用户名和邮箱

  1. 查询和设置用户名和邮箱:
git config -l 							# 查看配置
git config --list						# 作用相同

git config --global user.name        	# 查看用户名
git config --global user.email       	# 查看邮箱

git config --global user.name 用户名  	# 修改用户名
git config --global user.email 邮箱   	# 修改邮箱

  1. 查看配置详情
    【help.format=html】帮助文档采用 html 文档
    【core.editor=“URL” --wait】内核编辑器的位置,我采用的 VS code,安装在图中路径。
    还未配置,所有图中并没有用户名和邮箱的配置说明

GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输_第1张图片

  1. 查看和设置用户名和邮箱

GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输_第2张图片
4. 再次查看配置详情
显示了用户名和邮箱,说明配置成功。

GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输_第3张图片


【设置【SSH Key】加密传输】

目的

管理项目的时候,直接使用https url克隆到本地(对初学者来说会比较方便),还是使用 SSH url
克隆到本地(需要在克隆之前先配置和添加好 SSH key),

因此,如果你想要使用 SSH url 克隆的话,你必须是这个项目的拥有者。否则你是无法添加 SSH key 的。

https 和 SSH 的区别

  1. 前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。
  2. https url 在 push(本地传到GitHub) 的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。

Git 操作

许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。

  1. 检查是否已经生成密钥:
cd  ~/.ssh

cd ~/.ssh】就是查看Home目录(Windows是Administrator目录)下有没有 .ssh 隐藏文件夹
没有生成如图:

GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输_第4张图片

  1. 执行如下指令生成密钥(公有/私有 密钥对):
ssh-keygen -t rsa -C "邮箱"

ssh-keygen -t rsa -C "邮箱"
ssh-keygen】是命令标识符;
-t rsa密钥类型用 -t 选项指定,没有指定默认生成用于SSH-2的RSA密钥。这里使用的是rsa(密钥开头的格式 看图);
-C "注释字段,随意填写说明信息"注释字段,用-C来指定注释,方便用户标识这个密钥,指出密钥的用途或其他有用的信息。所以在这里输入自己的邮箱或者其他都行。
-f 文件名】指定密钥文件存储文件名,可省。

GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输_第5张图片

  1. 如上图【操作】:
  2. 【Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):】 输入保存密钥的文件名,默认id_rsa(推荐)
  3. 【Enter passphrase (empty for no passphrase):】接着会让输入2次密码(passphrase),空表示没有密码。该密码是你【push】文件的时候要输入的密码,而不是github管理者的密码;3次回车即可完成当前步骤。
  4. (我的【push】密码: 喜欢南,做个备忘);
  5. 注意:输入密码的时候没得任何提示,但实际你已经输入了。【切记
  6. 密码的作用,下次使用密钥的时候需要输入密码;
  7. 【.ssh】隐藏文件夹下生成了两个文件:【id_rsa】和【id_rsa.pub】
  8. 存放于【C:\Users\Administrator.ssh】隐藏文件夹下
  9. 【Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.】
    【Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.】
    【id_rsa】猜测是私有密钥,【id_rsa.pub】是公有密钥。
  10. 【The key fingerprint is:
    SHA256:1xJagBF6mxd5ow3poBO2tgQs+bmaXYKOTVZf7UfNogQ [email protected]
    不懂(?_?)
  11. 还有一个图,不懂(?_?)

GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输_第6张图片
14. 查看密钥:

cat  ~/.ssh/id_rsa			# 查看私钥
cat  ~/.ssh/id_rsa.pub   	# 查看公钥
  1. 现在,进行了上述操作的用户需要将各自的公钥发送给任意一个 Git 服务器管理员(假设服务器正在使用基于公钥的 SSH 验证设置)。 他们所要做的就是复制各自的 .pub 文件内容,并将其通过邮件发送。
    公钥看起来是这样的:

GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输_第7张图片
16. 关于在多种操作系统中生成 SSH 密钥的更深入教程,请参阅 GitHub 的 SSH 密钥指南 https://help.github.com/articles/generating-ssh-keys


GitHub操作

  1. 按图示步骤操作:

GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输_第8张图片

  1. Title用来区分多个密钥:(默认邮箱名?)
clip < ~/.ssh/id_rsa.pub  # git命令复制文件内容

GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输_第9张图片

  1. 输入自己GitHub 账号的密码,而不是上面刚刚设置的密码

GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输_第10张图片

  1. 添加成功:

GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输_第11张图片

测试【SSH Key】

1.输入测试代码:

ssh -T [email protected]

GitHub 的 Git 用户名和邮箱配置+【SSH Key】加密传输_第12张图片

  1. 【The authenticity of host ‘github.com (13.229.188.59)’ can’t be established.
    RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
    Are you sure you want to continue connecting (yes/no)?】警告信息,输入yes 回车即可。
  2. 【Warning: Permanently added ‘github.com,13.229.188.59’ (RSA) to the list of known hosts.】警告:永久添加“github.com,13.229.188.59”(RSA)到已知主机列表中。(【.ssh】文件夹下生成一个【known_hosts】文件)
  3. 【Enter passphrase for key ‘/c/Users/Administrator/.ssh/id_rsa’:】输入你的【push】密码刚刚设置的。
  4. 注意:输入密码时如果输错一个字就会不正确,使用删除键是无法更正的。
  5. 【Hi QMec/Test! You’ve successfully authenticated, but GitHub does not provide shell access.】QMec/Test仓库名,确认是自己的,且显示此信息说明SSH设置成功,如果你看到 【access denied】 ,者表示拒绝访问,那么你就需要使用 https 去访问,而不是 SSH 。

注意事项

  1. 密码不能忘

总结

  1. 需要多参考几篇文档才能精通呀!
  2. 学习到 Linux 的命令是 Shell 语言,代码块应该使用 shell(bash 也可以)。

思考

  1. SSH加密传输的作用,我的理解是:可以防止其他人【push】文件到你的GitHub仓库。

【如果有什么疑问或指正,请留言。】


你可能感兴趣的:(Git,GitHub,SSH,Key,配置)