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_rsa
、id_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 使用者都会遇到的必然坑。
本作品采用《CC 协议》,转载必须注明作者和本文链接