赞
踩
https://blog.csdn.net/haibo0668/article/details/106645434
出现这个问题:
- sudo -u www ssh -T git@gitee.com
- sudo -u root ssh -T git@gitee.com
看清楚是用那个,建议用WWW帐号权限,不能用ROOT权限(最高权限不建议)
所以生成SSH是要注意要用那个帐号来生成:
生成钥匙代码:
ssh-keygen -t rsa -C “xxxxx@xxxxx.com”
这个方式生成的钥匙默认是ROOT帐号生成,生成路径:/root/.ssh
查看钥匙:
cat /root/.ssh/id_rsa.pub
生成钥匙代码:
sudo -u www ssh-keygen -t rsa -C "xxx@xxx.com"
这个方式就是www帐号生成的权限,生成路径:/home/www/.ssh
三、测试是否能连接码云
- //分清楚用那个权限
- //root
- ssh -T git@gitee.com
- sudo -u root ssh -T git@gitee.com
-
- //www
- sudo -u www ssh -T git@gitee.com
通过宝塔的webhook插件,实现把码云上的项目自动同步到web服务器指定路径下
git --version
脚本内容:
脚本代码:
- #!/bin/bash
- echo ""
- #输出当前时间
- date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
- echo "Start"
- #判断宝塔WebHook参数是否存在
- if [ ! -n "$1" ];
- then
- echo "param参数错误"
- echo "End"
- exit
- fi
- #git项目路径
- gitPath="/www/wwwroot/zixue"
- #git 网址
- gitHttp="git@gitee.com:xxxx.git"
-
- echo "Web站点路径:$gitPath"
-
- #判断项目路径是否存在
- if [ -d "$gitPath" ]; then
- cd $gitPath
- #判断是否存在git目录
- if [ ! -d ".git" ]; then
- echo "在该目录下克隆 git"
- git clone $gitHttp gittemp
- mv gittemp/.git .
- rm -rf gittemp
- fi
- #拉取最新的项目文件
- git reset --hard origin/master
- git pull
- #设置目录权限
- chown -R www:www $gitPath
- echo "End"
- exit
- else
- echo "该项目路径不存在"
- echo "End"
- exit
- fi
注意:添加完后,点击编辑查看脚本内容是否正确,在上图输入框输入的命令会被过滤,所以要重新添加shell命令进去
接下来就是在码云等其他平台里做配置了,这里以码云为例
首先登录服务器 输入命令cd /root/.ssh/ 和 ls查看有没有SSH key
- cd /root/.ssh/
-
- ll
如果没有,使用命令ssh-keygen -t rsa -C "your_email@example.com"生成。如下图所示:
- ssh-keygen -t rsa -C "xxxx@126.com"
-
- cat /root/.ssh/id_rsa.pub
复制好id_rsa.pub文件内容后,打开码云的私有项目,依次点击:管理->添加公钥,如图:
在码云上添加好公钥后,使用ssh -T git@gitee.com测试SSH连接:
ssh -T git@gitee.com
更改宝塔hook脚本中的仓库地址为码云私有项目仓库的SSH连接地址
至此完毕,如果不成功,可以尝试更新一下webhook
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。