配置gitee ssh免密拉取代码-唯一客服系统文档中心
Posted 唯一在线客服系统-开发技术笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置gitee ssh免密拉取代码-唯一客服系统文档中心相关的知识,希望对你有一定的参考价值。
Gitee
我们的客服系统代码托管于Gitee私有仓库
默认情况下只用于开发者自我代码管理,不对外公布。
如果你也是放在私有仓库进行托管,可以如下配置免密操作。
部署公钥免密拉取代码
部署公钥允许以只读的方式访问仓库,主要用于仓库在生产服务器的部署上,免去HTTP方式每次操作都要输入密码和普通SSH方式担心不小心修改仓库代码的麻烦。
部署公钥配置后的机器,只支持clone与pull等只读操作。
下面是单个仓库中的配置位置
如果是全部仓库都可使用是下面设置
注意:使用免密ssh拉取的方式时,我们的远程仓库地址要使用ssh的形式,不能是https的形式
切换https形式为ssh形式
1.查看当前仓库url地址
git remote -v
2.复制项目的ssh地址,然后使用命令git remote set-url 来重新设置url
git remote set-url origin git@gitee.com:someaccount/someproject.git
3.用命令 git remote -v 查看一下,url是否已经变成了ssh地址
git remote -v
生成/添加SSH公钥
Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。
你可以按如下命令来生成 sshkey:
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
# Generating public/private ed25519 key pair...
注意:这里的
xxxxx@xxxxx.com
只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。
现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。
按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_ed25519.pub
文件内容,获取到你的 public key
cat ~/.ssh/id_ed25519.pub
# ssh-ed25519 AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。
添加后,在终端(Terminal)中输入
ssh -T git@gitee.com
首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You\'ve successfully authenticated, but Gitee.com does not provide shell access.
内容,则证明添加成功。
添加成功后,就可以使用SSH协议对仓库进行操作了。
仓库公钥和可部署公钥
为了便于用户在多个项目仓库下使用一套公钥,免于重复部署和管理的繁琐,Gitee 推出了「可部署公钥」功能,支持在一个仓库空间下使用当前账户名下/参与的另一个仓库空间的部署公钥,实现公钥共用。
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
GitHub + circleCI 自动构建/自动部署 应用
GitHub + circleCI 自动构建/自动部署, 这里略过了单元测试,以部署 laravel 应用为例子
比起 gitlab + ansible + genkins 操作起来节省了很多硬件资源,感谢 微软 免费了 GitHub 私有仓库
1、GitHub 相关
a、创建 github 仓库(现在可以免费创建私有仓库了,个人项目能满足了)
b、配置 SSH 公钥,可以走 SSH 渠道免密 拉取代码
2、circleCI 相关
a、github 登陆 https://circleci.com ,创建一个任务,直接关联 github 的某个仓库
b、配置此任务构建时 从 GitHub checkout 代码时 的 SSH 凭证,从github 配置的ssh key中选一个即可
c、配置此任务部署时需要部署的 一对SSH的密钥(随便在哪里生成都行)中的 SSH rsa 私钥,******* 注意 : 将远程服务器需要在 ~/.ssh/authorized_keys 把在circleCI上部署的死要对应的公钥(id_rsa.pub)另起一行追加进去
3、整合代码
代码中加入.circleci文件夹,并添加配置信息,就简单的实现自动构建和自动部署了
部署后的站点
创建一个仓库并配置部署key
circlrCI 任务后台配置 代码检出需要用到的 github ssh key,直接选一个即可
circleCI 配置能用SSH 私钥登陆远程服务器的 key
circlrCI 配置任务信息
circlrCI 配置任务执行过程中可以执行的脚本
circlrCI 后台能看见任务列表
具体的 构建/部署任务 详情
对于个人站点来说,节省了不少手动操作时间
最后,附上 .circleci 的配置和相关脚本
config.yml
version: 2 jobs: build: docker: - image: circleci/php:7.1-browsers working_directory: /tmp/workspace steps: - run: echo "====================构建开始==============================" - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "composer.json" }} # 如果没有匹配的缓存则使用最新的缓存 - v1-dependencies- - run: composer install -n --prefer-dist # 运行单元测试 # - run: phpunit - persist_to_workspace: root: . paths: - ./* - run: echo "====================构建完毕==============================" deploy: machine: timezone: Asia/Shanghai # 设置上海时区 enabled: true working_directory: /tmp/workspace steps: - run: echo "====================部署开始==============================" - attach_workspace: at: /tmp/workspace - run: pwd && ls -al - run: name: Deploy Over SSH command: ./.circleci/deploy-master.sh - run: echo "====================部署完毕==============================" workflows: version: 2 build-and-deploy: jobs: - build - deploy: requires: - build filters: branches: only: master
deploy-master.sh
#!/usr/bin/env bash user=root host=xxx.xxx.xxx.xxx src=`pwd`"/" des=/data/www/api.www.zjj7.com/ now=`date +"%Y-%m-%d %H:%M:%S"` rsync -vzrc --delete --exclude ".git" --exclude ".env" --exclude ".circleci" $src [email protected]$host:$des ssh [email protected]$host "sudo chown -R www:www $des" ssh [email protected]$host "chmod -R 775 $des/bootstrap/cache && chmod -R 775 $des/storage && cd $des && pwd && ls -al" echo "$now update $host $des code"
以上是关于配置gitee ssh免密拉取代码-唯一客服系统文档中心的主要内容,如果未能解决你的问题,请参考以下文章
GitHub + circleCI 自动构建/自动部署 应用
GitHub + circleCI 自动构建/自动部署 应用