一、https 和 SSH 的区别:
1、前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。
2、https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。
二、在 github 上添加 SSH key 的步骤:
1、首先需要检查你电脑是否已经有 SSH key
运行Bash 客户端或者zsh,输入如下代码:
[bash]
$ cd ~/.ssh
$ ls
[zsh]
$ la ~/.ssh
检查是否已经存在 id_rsa.pub 或 id_dsa.pub 文件
如若已存在,则直接复制粘贴即可:
cat ~/ssh/id_dsa.pub
复制内容在终端执行Ctrl+Shift+V即可
2、如若不存在,则创建一个 SSH key
$ ssh-keygen -t rsa -C “email@example.com“生成 id_rsa 和 id_rsa.pub 两个秘钥文件。
接着会提示你输入两次密码
Enter passphrase (empty for no passphrase):
该密码是你push文件的时候要输入的密码,而不是github管理者的密码),
当然,你也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到github上了,如:
Enter same passphrase again:
接下来,就会显示如下代码提示,如:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXX email@example.com
The key’s randomart image is:
当你看到上面这段代码的收,那就说明,你的 SSH key 已经创建成功,你只需要添加到github的SSH key上就可以了。
3、添加你的 SSH key 到 github上面去
1)你需要拷贝 id_rsa.pub 文件的内容,你可以用编辑器如kate、leafpad等打开文件复制,也可以用命令复制该文件的内容,如:
$ cat ~/.ssh/id_rsa.pub
复制内容在终端执行Ctrl+Shift+V即可
2)登录你的github账号,点击上角的头像设置Settings进入,然后点击菜单栏的 SSH key 进入页面添加 SSH key。
3)点击 SSH and GPG keys 按钮添加一个 New SSH key 。Title 输入框你可以输入一个该 SSH key 显示在 github 上的一个别名,例如设备名称或软件名称;把复制的 SSH key 代码粘贴到 key 所对应的输入框中,注意 SSH key 代码的前后不要留有空格或者回车。
4)测试SSH key
在Bash 中输入以下代码
$ ssh -T git@github.com
当你输入以上代码时,会有一段警告代码,如:
➜ blog ssh -T git@github.com
如果你创建 SSH key 的时候设置了密码,接下来就会提示你输入密码:
Enter passphrase for key ‘/home/levo/.ssh/id_rsa’:
Hi user! You’ve successfully authenticated, but GitHub does not provide shell access.
到此,GitHub SSH设置完成!