Linux ubuntu上post接收挂钩中的git自动部署脚本
我有一个autodeploybash脚本,可以在gitosis上的“post receive”钩子中将repo更新到/tmp #!/bin/bash PWD=$PWD REPO_NAME=${PWD##/*/} cd/tmp git克隆git@atom-桌面:$REPO_名称 但每当我推送存储库时,都会出现如下错误: 主机密钥验证失败 致命:远程端意外挂起 错误:挂钩/post接收退出,错误代码128Linux 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之间都存在密
如何处理这个问题?听起来,无论/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,但不是在需要它的机器上。请参阅这里的快速教程,了解如何设置它(我每次都忘了!)