当前位置:   article > 正文

CentOS Git+码云+TP 宝塔webhook 实现把码云上的项目自动同步到web服务器(git@gitee.com: Permission denied (publickey).报错解决)_宝塔webhook 权限

宝塔webhook 权限

宝塔 WebHook 代码自动更新到阿里服务器上(案例)

https://blog.csdn.net/haibo0668/article/details/106645434

出现这个问题:

肯定是搞定了权限,要分清楚两个帐号的权限www和root

  1. sudo -u www ssh -T git@gitee.com
  2. sudo -u root ssh -T git@gitee.com

看清楚是用那个,建议用WWW帐号权限,不能用ROOT权限(最高权限不建议)

所以生成SSH是要注意要用那个帐号来生成:

一、root权限(不建议)

生成钥匙代码:

ssh-keygen -t rsa -C “xxxxx@xxxxx.com

这个方式生成的钥匙默认是ROOT帐号生成,生成路径:/root/.ssh

查看钥匙:

cat /root/.ssh/id_rsa.pub

二、www权限

生成钥匙代码:

sudo -u www ssh-keygen -t rsa -C "xxx@xxx.com" 

这个方式就是www帐号生成的权限,生成路径:/home/www/.ssh

三、测试是否能连接码云

  1. //分清楚用那个权限
  2. //root
  3. ssh -T git@gitee.com
  4. sudo -u root ssh -T git@gitee.com
  5. //www
  6. sudo -u www ssh -T git@gitee.com

通过宝塔的webhook插件,实现把码云上的项目自动同步到web服务器指定路径下

  1. 确保web服务器里安装了git 可通过git –version查看
git --version
  1. 进入宝塔面板,软件管理-》宝塔插件,搜索wekhook,然后安装即可

  1. 添加hook

脚本内容:

脚本代码:

  1. #!/bin/bash
  2. echo ""
  3. #输出当前时间
  4. date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
  5. echo "Start"
  6. #判断宝塔WebHook参数是否存在
  7. if [ ! -n "$1" ];
  8. then
  9. echo "param参数错误"
  10. echo "End"
  11. exit
  12. fi
  13. #git项目路径
  14. gitPath="/www/wwwroot/zixue"
  15. #git 网址
  16. gitHttp="git@gitee.com:xxxx.git"
  17. echo "Web站点路径:$gitPath"
  18. #判断项目路径是否存在
  19. if [ -d "$gitPath" ]; then
  20. cd $gitPath
  21. #判断是否存在git目录
  22. if [ ! -d ".git" ]; then
  23. echo "在该目录下克隆 git"
  24. git clone $gitHttp gittemp
  25. mv gittemp/.git .
  26. rm -rf gittemp
  27. fi
  28. #拉取最新的项目文件
  29. git reset --hard origin/master
  30. git pull
  31. #设置目录权限
  32. chown -R www:www $gitPath
  33. echo "End"
  34. exit
  35. else
  36. echo "该项目路径不存在"
  37. echo "End"
  38. exit
  39. fi


注意:添加完后,点击编辑查看脚本内容是否正确,在上图输入框输入的命令会被过滤,所以要重新添加shell命令进去

  1. 查看秘钥

接下来就是在码云等其他平台里做配置了,这里以码云为例

  1. 打开码云仓库,添加WebHooks

  1. 设置私有仓库代码同步

宝塔服务器SSH key是一定要放到这个目录下/root/.ssh/

首先登录服务器 输入命令cd /root/.ssh/ 和 ls查看有没有SSH key

  1. cd /root/.ssh/
  2. ll

如果没有,使用命令ssh-keygen -t rsa -C "your_email@example.com"生成。如下图所示:

  1. ssh-keygen -t rsa -C "xxxx@126.com"
  2. cat /root/.ssh/id_rsa.pub

复制好id_rsa.pub文件内容后,打开码云的私有项目,依次点击:管理->添加公钥,如图:

在码云上添加好公钥后,使用ssh -T git@gitee.com测试SSH连接:

ssh -T git@gitee.com

更改宝塔hook脚本中的仓库地址为码云私有项目仓库的SSH连接地址

至此完毕,如果不成功,可以尝试更新一下webhook

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/355233
推荐阅读
  

闽ICP备14008679号