前言
一般来说,我们从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