前言
一般来说,我们从 github 克隆代码,有两个模式,一个是 https 模式,一个是 ssh 模式。如果我么没有建立 ssh 信任,是无法通过 ssh 模式克隆代码的。ssh 模式有一个优势就是可以建立本地 git 工具和 github 服务器之间的信任,不需要使用账号密码登录,尤其是我们 push origin 提交服务器的时候,省去输入账号密码的步骤。
场景
系统:ubuntu 18.04 工具:VSCode 1.31.1 工具:git 2.17.1
过程
本地准备 SSH-KEY 打开终端,cd ~ 进入根目录,执行 ssh keygen,一路回车,生成本地的 SSH-KEY,在目录 /home/myubuntu/.ssh 下分别是 id_rsa 和 id_rsa.pub 文件。其中 id_rsa.pub 文件是公钥,另一个 id_rsa 是私钥。公约提供给服务器,私钥自己保留,在这里,服务器就是 github。
把 SSH-KEY 写入服务器登录 github,访问 https://github.com/settings/keys 页面,主页面有两个模块 SSH keys 和 GPG keys,我们需要使用的是 SSH keys。右边页面有一个绿色按钮 New SSH key,点击会出现添加栏,分别是 Title 和 Key。把本地文件 id_rsa.pub 打开,可以在 /home/myubuntu/.ssh 下执行命令 vi id_rsa.pub,完整复制粘贴到 Key 输入栏,Title 可以随便命名,比如 ubuntu key,点击下方的绿色按钮 Add SSH key,保存成功。
在本地终端执行命令 ssh -T git@github.com,会用本地秘钥连接 github 主机,如果有提示 You’ve successfully authenticated, but GitHub does not provide shell access. 代表连接成功。这时候可以通过 ssh 从自己的 github 仓库拉取项目了。拉取数据的时候必须选择 ssh 地址,复制到本地终端,进入存放代码的目录,执行命令 git clone git@github.com:No2015/vue-cli3-typescript.git。只有通过 ssh 拉取的项目才能通过 ssh 来控制。
本地项目克隆完毕,安装依赖模块,正常运行之后。如果修改成功,可以通过命令行执行 git add .、git commit -m ‘add all’,git push origin master 三个命令提交代码。或者通过 VSCode 工具提供的快捷方式提交。因为有 ssh 签名的信任,账号密码都是免除了的,省事很多。
结语
之前搞了一小会儿,因为项目是通过 https 模式拉取下来的,ssh 建立之后还是需要输入账号密码,折腾很长时间才发现,修改本地仓库的 remote 就好了,或者删除本地代码,重新通过 ssh 拉取新代码。修改本地仓库地址的命令是 git remote set-url origin git@github.com:No2015/vue-cli3-typescript.git