Mac 生成 SSH Key 连接 GitHub

首先检查本地有没有 ssh 秘钥:

$ cd ~/.ssh/ && ls

如果发现没有 id_rsa,或 id_rsa.pub 说明没有,那就生成一个:

$ ssh-keygen -t rsa -C "your_email@example.com"

之后需要设定两次密码,可以直接回车过去,没什么必要,反正都会生成。
其中 rsa 的意思是:

RSA 加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA 是 1977 年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA 就是他们三人姓氏开头字母拼在一起组成的。
对极大整数做因数分解的难度决定了 RSA 算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA 算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用 RSA 加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用 RSA 加密的信息实际上是不能被解破的。
1983 年麻省理工学院在美国为 RSA 算法申请了专利。这个专利 2000 年 9 月 21 日失效。由于该算法在申请专利前就已经被发表了,在世界上大多数其它地区这个专利权不被承认。

现在可以 ls 查看 ~/.ssh/ 里面的内容,会发现多了 id_rsaid_rsa.pub 两个文件,其中带 .pub 后缀的是公钥(Public Key)文件。
现在可以把这个公钥文件里面的内容复制到剪贴板,粘贴进 Github 的新建 SSH Key 的 Key 里面去了。

$ cat id_rsa.pub | pbcopy

这样就配置好了 SSH 访问 Github 的权限。
可以测试一下行不行:

$ ssh -T git@github.com

会看到一条消息:

Connection to github.com port 22 [tcp/ssh] succeeded!
Hi YourGithubName! You've successfully authenticated, but GitHub does not provide shell access.

别担心,这很正常,这是在说连接 github.com:22 成功!你已成功认证!不过 Github 不支持 shell 访问。(因为你要用 git 命令访问)

一般情况下很多人不管是在自己写项目 push git 远程仓库还是从远程仓库 clone 项目到本地,这些过程中使用的是 git@github.com 这样的 ssh 访问方式,没有权限的情况下就会有这样的报错:

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

遇到这种问题,去配置一下 SSH Key 就行了,这是每个 git 使用者都会遇到的必然坑。

MAC
本作品采用《CC 协议》,转载必须注明作者和本文链接
不要试图用百米冲刺的方法完成马拉松比赛。
本帖由 Galois 于 3年前 加精
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!