问题标签 [gitosis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
9167 浏览

git - 通过 SSH 隧道连接到 gitosis 服务器

我在我的 macbook 上设置了 SSH 隧道,就像这样......

所以我可以 ssh 到 localhost:22222 并最终在防火墙后面的 gitosis-server 上。

我创建了一个本地 id_rsa.pub 文件,将其复制到 gitosis 服务器(运行 Centos5),然后使用...将其导入 gitosis

所以......我认为这个命令应该工作......

然而,当它要求输入密码时,它不会......当公钥应该工作时。

关于让 git 通过防火墙后的 gitosis 服务器工作的任何想法?

谢谢,
马特


编辑 - 从 SSH 尝试添加调试

我做了这个命令,'ssh -vvv gitosis@gitosis-server'。我得到了一些调试,它似乎不喜欢我的身份。


编辑 2

好的...肯定是一个坏键。我再次检查了所有的密钥,当然发现 gitosis-server 在 authorized_keys 文件中持有一个错误的密钥。

debug1:用户 gitosis 服务 ssh 连接方法的 userauth-request 无 debug1:尝试 0 次失败 0 debug1: PAM: 为“gitosis”初始化 debug1:PAM:将 PAM_RHOST 设置为“firewall.domain.com” debug1:PAM:将 PAM_TTY 设置为“ssh” debug1: userauth-request 用户 gitosis 服务 ssh-connection 方法 publickey debug1:尝试 1 失败 1 debug1:测试 pkalg/pkblob 是否可以接受 debug1:temporary_use_uid:102/103(e=0/0) debug1:尝试公钥文件 /var/lib/gitosis/.ssh/authorized_keys 调试1:restore_uid:0/0 debug1:temporary_use_uid:102/103(e=0/0) debug1:尝试公钥文件 /var/lib/gitosis/.ssh/authorized_keys2 调试1:restore_uid:0/0 来自 FIRE.WALL.IP.ADDRESS 端口 52453 ssh2 的 gitosis 公钥失败

我仔细查看了 gitosis 服务器上的 authorized_keys 文件……它是不正确的。我仔细检查了我从工作站复制到 /tmp 的公钥文件,它是正确的,但与authorized_keys 中的不同。我删除了服务器上的 authorized_keys 文件并重新运行了“sudo -H -u gitosis gitosis-init < /tmp/id_rsa.gitosis.pub”。再次检查了authorized_keys文件......仍然是错误的。

我通过编辑authorized_keys 并添加正确的密钥来手动更新它,然后我通过隧道从我的工作站工作一两次尝试。然后它像以前一样停止工作。我回到了 gitosis 服务器上的 authorized_keys 文件,果然……gitosis 已将其恢复为不起作用的旧密钥。

为什么这样做....恢复到一个错误的公钥....即使在我尝试使用上述命令添加它之后...它未能更改它....然后手动更改它....这有效,但 git 然后又恢复到坏的状态。

就像 gitosis 一直记得我放在那里的第一个键......并且不会让我将其更改为更正的键。

令人沮丧...

马特

0 投票
2 回答
1884 浏览

git - gitosis 授权密钥

奇怪的事情 - 在 git push gitosis 上不会将新用户的密钥添加到 /home/git/.ssh/authorized_keys。当然-我可以手动添加密钥,但这不好:(

我能做些什么?

0 投票
5 回答
18914 浏览

git - gitosis 和 git 克隆问题

我已经安装了 gitosis,但是当我使用 repos 时我有奇怪的事情。在配置中我有

在 /home/git/repositories 中,我创建了目录 prj1.git 和空的 git repo。

我可以毫无问题地从服务器和笔记本电脑使用 gitosis-admin,但是当我尝试在笔记本电脑上git clone prj1 时,我看到了

好的,让我们将 prj1 从笔记本电脑推送到服务器:

怎么了?

0 投票
2 回答
4555 浏览

git - 如何从推送 gitosis.conf 文件中恢复,但由于换行符导致解析错误?

我已成功为 Android 镜像(包含多个 git 存储库)设置了 gitosis。在 gitosis.conf 中的 writable= 之后添加一个新的 .git 路径时,我设法插入了一些换行符。当我收到以下解析错误时,已保存、提交并推送到服务器:

回溯(最后一次调用):文件“/usr/bin/gitosis-run-hook”,第 8 行,在 load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-run-hook')()

运行中的文件“/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py”,第 24 行,返回 app.main()

文件“/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py”,第 38 行,在 main self.handle_args(parser, cfg, options, args)

文件“/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/run_hook.py”,第 75 行,在 handle_args post_update(cfg, git_dir)

文件“/usr/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/run_hook.py”,第 33 行,在 post_update cfg.read(os.path.join(export, ' ..', 'gitosis.conf'))

文件“/usr/lib/python2.5/ConfigParser.py”,第 267 行,读取 self._read(fp, filename)

_read raise e 中的文件“/usr/lib/python2.5/ConfigParser.py”,第 490 行

ConfigParser.ParsingError:文件包含解析错误:./gitosis-export/../gitosis.conf

(...)

我已经删除了换行符并修改了提交

git commit -m "修复换行" --amend

但是 git push 仍然会产生完全相同的错误。它让我相信 gitosis 正在阻止我做任何进一步的推动。

我该如何从中恢复?

0 投票
1 回答
2079 浏览

git - Gitosis 和 ssh 密钥 - 电子邮件地址与 git 电子邮件地址有什么关系?

我正在尝试在服务器上设置 gitosis。我只是想知道一件事,我的 ssh 密钥最后有我的 gmail 地址,因为我最初将它用于 github。对于我正在设置的服务器上的这个新项目,我想在提交到 git 时使用我的电子邮件地址。在 gitosis 中设置时我可以使用相同的 ssh 密钥,还是需要使用在我的帐户上生成的不同 ssh 密钥me@newserver

0 投票
3 回答
4199 浏览

git - Windows 的 git 推送验证将作者设置为未知

我最近在 Ubuntu 服务器上的专用网络中设置了一个新的 gitosis。网络中的所有其他客户端都是 Windows XP 机器,除了一个 Linux 客户端

我在 gitosis.conf 中有以下设置:

我还在 keydir 中放置了 user1.pub、user2.pub 和 user3.pub 密钥文件。密钥是使用 ssh-keygen 在 Ubuntu 服务器上生成并分发给各个用户的。公钥的副本放在 keydir 中。

前两个用户是 Windows XP 用户,他们使用 msysgit + TortoiseGit 使用存储库,一个用户在 Linux 机器上使用默认命令行版本的 git 访问存储库。

现在一切都设置好了,每个人都可以做任何他们期望做的事情,他们可以拉、推、提交——一切看起来都很好,除非我们检查日志!!!

在 Linux 机器上使用 user3,我尝试了“git log”命令并​​得到以下输出:

这是不正确的。这个日志应该可以告诉我谁是 Push 的作者。我的感觉是,它为 Linux 上的用户提供了正确的值,因为他们的用户名和电子邮件也添加到了 Linux 用户信息中,但对于 Windows 客户端,它不是真的,所以他们的名字不会正确显示。但是,即使我在 Windows 机器上修复了名称,也可以通过模拟其他用户名来避免这种情况,我不想依赖用户名。

我希望 SSH 文件中提供的名称出现在那里,或者推送时使用的 SSH 文件的名称添加为作者。

可能是git的钩子预接收可以在这里提供帮助,但我不知道如何使用它......有人可以帮忙吗?

谢谢,拉克什

更新:

感谢您的回答。

alexandrul,我没有设置全局设置,这是因为我希望每个用户的信息都应该被真实记录。

静噪,你是对的,我可以看到省略用户名的用户,但我如何强制他们这样做。我可以告诉他们配置他们的本地项目项目并设置用户名和电子邮件地址,但是如果有人使用假用户名或尝试使用其他人的用户名和电子邮件地址,基本上试图冒充其他人怎么办?

这就是为什么我认为为什么不记录私钥文件的名称,例如,我将文件名设置为 user1 的 user1.ppk,类似于 user2 的 user2.ppk。在这种情况下,即使有人试图扮演其他人,他们也不会成功,因为用于检查的关键名称会告诉我真相。

有任何想法吗???

问候, 拉克什

更新 2:

感谢帮助。Squelch,感谢您花时间解释这么多细节。我认为电视的蜘蛛网有很多信息,现在正在阅读。

到目前为止,我所做的一件事是:要求我的用户使用更新他们的配置来包含用户名和电子邮件地址。但我必须解决问题,因为我无法追逐每个用户。

我想要像 SVN+SSH 这样的东西,我们在密钥文件中使用 tunnled 用户名,它会被 SVN 记录下来。

0 投票
5 回答
3201 浏览

git - 推送配置更改后 Gitosis 不更新服务器配置

我已经使用以下教程设置了 gitosis:

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

我发现在 gitosis.conf 中添加适当的权限后,我无法推送和创建新的存储库。我会不断收到“拒绝读取访问”错误。我最终检查了服务器上包含我更新的 gitosis.conf 文件的实际存储库。但是,当我检查位于 gitosis 用户主文件夹中的“.gitosis.conf”文件时,我发现它没有更新。一旦我用存储库中的文件替换了这个文件的内容,我就能够毫无问题地创建和使用新的存储库。

有谁知道这可能是什么原因造成的?我知道 gitosis 使用更新后挂钩来适当地更新服务器,所以我认为问题很可能存在于此。

提前致谢!布莱恩

0 投票
1 回答
616 浏览

git - Gitosis 安装问题

我已经使用主站点( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way)上的说明安装了 gitosis 。在网上搜索似乎很标准的安装方法。但是,在尝试克隆 gitosis-admin 时,我似乎遇到了以下错误。

git clone git@192.168.1.20:gitosis-admin.git 致命:'gitosis-admin.git' 似乎不是 git 存储库致命:远程端意外挂断

有谁知道问题可能是什么?我正在使用 Arch Linux Python 2.6.3 Git 1.6.5.1 运行 gitosis

0 投票
3 回答
4307 浏览

git - 为什么我不能使用 gitosis 添加新的存储库?

我设置了 gitosis,但即使我可以克隆、拉取和推送到 gitosis-admin 存储库,我也无法创建新存储库。

根据我阅读的每个文档,要创建一个新的 repo,必须:

  • 授予用户对 repo 的写访问权限(在组内 put:writable = repo-name)
  • 用户在本地创建一个仓库添加一个远程然后进行推送
  • 在服务器中创建 repo

但我总是得到错误fatal: 'repo-name.git' does not appear to be a git repository

但是,如果在服务器上登录(作为用户 git)并使用手动创建 repo mkdir repo-name.git && cd repo-name.git && git --bare init,那么我可以从本地 repo 推送到远程 repo。

0 投票
2 回答
20182 浏览

git - git-merge 与本地文件系统上的存储库

对于某些情况:我刚刚升级了 Ubuntu,它破坏了我现有的 gitosis 安装(请参见此处:错误 #368895),并且刚刚从包中重新安装了 gitosis。我现在想从旧的 gitosis 安装迁移我的整个配置和存储库集(它仍然存在并且可以从中拉出,但会被破坏)。

我现在在本地有两个 gitosis-admin 目录,一个用于每个 gitosis 安装。一个有完整的历史,另一个是空的。我想回顾这段历史。这是正在发生的事情:

... 有 git 存储库的地方~/gitosis-admin-old/~/gitosis-admin-new/

我可能也需要为其他存储库执行此操作,这些存储库具有更长和更重要的历史,因此无法选择复制和提交。

我究竟做错了什么?我试过指向 .git/HEAD ,据我所知这是一个提交,但这不起作用。有人可以解释如何做到这一点吗?谢谢!