1.首先要有自己的github帐号
第一次创建帐号会引导创建一个自己的版本库, 照着指示 先建一个版本库耍耍吧.
2. 创建一个SSH KEY
按照文档中所述先创建一个SSH key, 要求输入密码的时候可以选择空, 可以避免后面要使用key的时候提示输入密码.
点击(此处)折叠或打开
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com
3. 整理生成的SSH KEY
一般生成的文件在~/.ssh/目录下 id_rsa(密钥) id_rsa.pub(公钥)这里如果有人有多个ssh key用来访问不同的服务器, 就可能需要重命名.
例如:
我将生成 的key改个容易识别名字git_hub.
点击(此处)折叠或打开
$ cd ~/.ssh
$ mv id_rsa git_hub
$ mv id_rsa.pub git_hub.pub
另外需要配置一个~/.ssh/config文件(没有就创建一个), 里面用来配置访问不同服务器时指定用哪个key(密钥)
看我这边~/.ssh/config的内容:
点击(此处)折叠或打开
$ cat ~/.ssh/config
Host github.com
User your_github_name
IdentityFile ~/.ssh/git_hub
文件内容大致是 使用SSH方式访问github.com时 使用的密钥文件为~/.ssh/git_hub, 用户名: your_github_name(即上面注册的github用户名)
4. 按照 官方文档的继续操作:
增加 私钥 到ssh-agent高速缓存(ubuntu 16.04测试系统重启后 不需要再次输入此命令 就可以使用ssh key修改提交代码了)
点击(此处)折叠或打开
$ ssh-add ~/.ssh/git_hub
5. 将公钥上传到github上
按照官方文档 在 github网站上:
个人设置 Setting - SSH and GPG keys - SSHkeys - New SSH key
title: 随便写一个容易识别的标题
Key: 中增加git_hub.pub 内容(可以查看git_hub.pub内容, 然后手动复制粘贴)
6. 本机测试上面的 ssh key是否设置OK
执行下面的命令
点击(此处)折叠或打开
$ ssh -vT git@github.com如果后面出现 :
Hi ****! You've successfully authenticated, but GitHub does not provide shell access.
证明SSH key配置OK. 如果失败 因为加了-v参数 可以详细看到哪一步出的错, 慢慢排查吧....
下面使用SSH的方式来 使用上面配置好的SSH KEY来修改你在github上创建的版本库中的文件 并提交.
7. 下载版本库
先将你创建的版本库用git下载下来, 下载地址在版本库界面 "Clone and Download" 按钮点击后显示.
注意: 在点开显示的页面中 右上角选择"use SSH"(如果没用帐号登录将只有https一种下载方式, https方式无法使用SSH KEY来修改提交代码)
SSH下载地址为git@github.com 开头, 我这边是: git@github.com:Meppo/hello-world.git
8. 下载完代码后, 进入代码目录, 查看一下此版本库配置, 看 git提交方式是否为SSH
点击(此处)折叠或打开
$ cat .git/config
看中间一段:
点击(此处)折叠或打开
$ [remote "origin"]
#url = https://github.com/Meppo/hello-world.git
url = git@github.com:Meppo/hello-world.git
fetch = +refs/heads/*:refs/remotes/origin/*
如果 url这一行 是https:// 开头(#开头被注释的那一行) 证明仍然使用的https方式来提交代码 仍会提示输入github用户名/密码
如果 url这一行 是git@ 开头 证明使用的ssh方式来提交代码 应该就会使用上面我们添加的ssh key, 自动验证 无需任何要求输入用户名/密码的操作.
9. 修改个文件并提交.
创建个文件并提交 看是否不需要用户密码就能提交成功
点击(此处)折叠或打开
$ echo "test" > a.txt
$ git add a.txt
$ git commit a.txt -m "add file a.txt"
$ git push
10. 至此 应该OK了, 可以通过SSH KEY的方式 任性的修改提交代码了.