Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux ubuntu上post接收挂钩中的git自动部署脚本_Linux_Git_Deployment_Gitosis - Fatal编程技术网

Linux ubuntu上post接收挂钩中的git自动部署脚本

Linux ubuntu上post接收挂钩中的git自动部署脚本,linux,git,deployment,gitosis,Linux,Git,Deployment,Gitosis,我有一个autodeploybash脚本,可以在gitosis上的“post receive”钩子中将repo更新到/tmp #!/bin/bash PWD=$PWD REPO_NAME=${PWD##/*/} cd/tmp git克隆git@atom-桌面:$REPO_名称 但每当我推送存储库时,都会出现如下错误: 主机密钥验证失败 致命:远程端意外挂起 错误:挂钩/post接收退出,错误代码128 如何处理这个问题?听起来,无论/tmp在哪里,SSH连接与atom desktop之间都存在密

我有一个autodeploybash脚本,可以在gitosis上的“post receive”钩子中将repo更新到/tmp

#!/bin/bash

PWD=$PWD

REPO_NAME=${PWD##/*/}

cd/tmp

git克隆git@atom-桌面:$REPO_名称

但每当我推送存储库时,都会出现如下错误:

主机密钥验证失败

致命:远程端意外挂起 错误:挂钩/post接收退出,错误代码128


如何处理这个问题?

听起来,无论/tmp在哪里,SSH连接与atom desktop之间都存在密钥不匹配的问题。如果您尝试从/tmp所在的计算机SSH到atom desktop,会发生什么情况?

您只需执行以下操作:

git clone --local $REPO_NAME
由于git还支持从本地目录克隆:

也适用于地方卫生机构 在git的本地支持下 可以使用以下语法:

/路径/to/repo.git/

file:///path/to/repo.git/

这两个语法主要是 相等,但前者意味着 --本地选项


/tmp文件夹位于atom桌面上,如果我尝试在同一个post receive脚本中创建“touch sample_file”,它是由“git”用户作为文件所有者创建的,没有任何问题,我认为这可能是密钥不匹配,但如何修复?这就是为什么我说“如果使用SSH会发生什么”。这个错误应该会提示您需要做什么。如果没有,请尝试删除~/.ssh/known_主机。这是存储公钥指纹的地方。当我以“git”用户身份登录(使用禁用密码)并执行以下操作时ssh://git@192.168.0.6/home/git/repositories/myproject,有人问我密码的问题,但当我在本地网络的其他pc上做同样的事情时,它会在没有提示的情况下工作,也许我应该在某个地方添加“git”用户rsa pub密钥?听起来好像您已经设置了无密码SSH,但不是在需要它的机器上。请参阅这里的快速教程,了解如何设置它(我每次都忘了!)