目录
- 概述
- 本地(代码管理者)电脑配置ssh到码云 流程
- 服务器(单位或者客户电脑)配置ssh到码云 流程
- 一些问题
概述
为什么不选择传统的https克隆项目?
SSH是一种网络协议,用于计算机之间的加密登录。
如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。
ssh也是Linux系统的标准配置
https与ssh区别在哪里呢?
https 任何人都可以clone
ssh 只有项目的拥有者或管理员可以使用,且fetch和push代码时候,无需反复输入密码验证身份
本地(代码管理者)电脑配置ssh到码云 流程
最高权限,提交,拉取等
0.进入码云官网,创建账号,并创建一个新的仓库
设置 仓库名称 、仓库介绍 、开源选择私有(因为github私有仓库是收费项目)、创建readme文件初始化(如果本地有readme,不要勾选),另外这个在后续流程第8步,有报错隐患
1.本地电脑终端,输入ssh-keygen
,生成 公钥
如:
Your identification has been saved in C:\Users\yourAccount/.ssh/id_rsa.
Your public key has been saved in C:\Users\yourAccount/.ssh/id_rsa.pub.
打开C:\Users\yourAccount/.ssh/id_rsa.pub
获取公钥
2.登录码云账号,在个人 '设置' ,创建一个新的公钥(公钥)
输入公钥标题,粘贴公钥代码,即可创建
3.终端跳转本地项目路径,初始化git项目 git init
4.针对本地项目配置用户名与邮箱
git config user.name "xxxxxx"
git config user.email "xxxxxx@sina.com"
5.添加所有项目文件
git add .
如果报错:
xxxx does not have a commit checked out
则删除报错文件夹内的隐藏 .git文件夹 再次尝试即可
6.添加到本地版本库
git commit -am "第一次提交"
7.将远程仓库关联到码云
git remote add origin git@gitee.com:xxx/xxxx.git
其中git@gitee.com:xxx/xxxx.git 为码云创建项目后,获取的地址,如图
8.首次提交远程仓库
git push -u origin master
如报错:
The authenticity of host 'gitee.com (xxx.xxx.xx.xxx)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
则输入yes,回车
如再报错:
输入git pull gitee master --allow-unrelated-histories
如仍报错:
则使用 git push -f origin master
报错原因可能为(GitHub远程仓库中的README.md文件不在本地仓库中)
9.后续再次提交远程仓库
git push
如报错:
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
则,按照提示输入 git push --set-upstream origin master
服务器(单位或者客户电脑)配置ssh到码云 流程
仅拥有拉取代码 权限
部署公钥允许以只读的方式访问仓库,主要用于仓库在生产服务器的部署上,免去HTTP方式每次操作都要输入密码和普通SSH方式担心不小心修改仓库代码的麻烦。
1.在服务器终端,输入ssh-keygen 生成公钥
一路默认回车,在生成中,查看公钥生成的存储路径
2.登录码云,切换到当前项目,选择 '管理' - '部署公钥管理' - '添加公钥'
填写标题,以及公钥,完成后添加
3.拉取代码,阿里云远程(Xshell也可)VNC登录,跳转至Nginx的(/usr/local/webserver/nginx/html)目录,mkdir 创建一个项目文件夹,通过git clone 码云项目的SSH地址
拉取代码
4.由于提交包 .gitignore 屏蔽了node_modules ,故此可以优先安装下依赖包 npm install
5.使用pm2管理进程...... , 测试服务器端口,管理服务器等
一些问题
1.windows系统用户,使用阿里云自带远程登录(VNC方式),虽然可以通过cat查看/root/.ssh/id_rsa.pub
,但是无法将其copy下来。
另外,通过winscp登录 无法找到/root/.ssh/id_rsa.pub 这个文件,好神奇~~~,手动敲(409个大小写数字符号加空格)也容易出错
解决方式,通过下载Xshell登录,可以copy代码
安装方式,下载一个免安装,一般软件安装方式
1-2.配置 这个 新建连接,端口号22 主机写自己服务器的IP号(公),连接,弹出身份验证界面,默认用户名root 密码自行填写
再次通过cat查看/root/.ssh/id_rsa.pub
,即可copy了