- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我刚刚在 debian 上设置了一个 git + Gitolite 服务器,在我的工作站 (Windows) 上用 puttygen 生成了一个 key 对,并在服务器上注册了第一个 pub key
gitosis setup -pk firstuser.pub
然后我使用 TortoiseGit 克隆 gitolite-admin 存储库,使用 url : git@git.myserv.com:gitolite-admin 和 tel Tortoise 使用 firstuser.ppk 作为私钥。在此之前一切正常。
然后我想测试在我的工作站上添加一个用户并创建一个新的存储库。
我在 conf 文件中添加了一个部分:
repo testcreation
RW+ = seconduser
我在我的工作站上为第二个用户生成了第二个 ssh key 对。只需将 seconduser.pub 放入 keydir/commit 并推送新配置。
配置接缝没问题,我的新用户公钥已添加到服务器端 git 用户的 ~/.ssh/authorized_keys。
我在我的工作站上用 Tortoise 建立了一个新的 repo,添加了一个新的 Remote :
name : origin
url : git@git.myserv.com:testcreation
Putty Key : seconduser.ppk
然后推送创建repo
TortoiseGit Log :
git.exe push --all --progress "origin"
FATAL: W any testcreation firstuser DENIED by fallthru
(or you mis-spelled the reponame)
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
git did not exit cleanly (exit code 128) (1591 ms @ 12/02/2014 12:20:17)
为什么 Gitolite 在我发送 seconduser 私钥时将我识别为 firstuser ?这是否与我在同一个工作站上使用两个不同的 key 有关?
最佳答案
好吧,我找到了解决问题的方法。
请注意,我的工作站是在 Windows 下
事实上,TortoiseGit 并没有使用 OpenSSH 作为 SSH 客户端,而是使用 Putty。在我的情况下,这真的很麻烦,因为带有 Plink (putty) 的 TortoiseGit 无法 处理 2 个私钥来验证来自同一工作站的 2 个不同 Gitolite 用户到单个 user@host(在我的情况下是 firstuser 和 seconduser ) 使用 putty 作为 ssh 客户端。
请注意,在现实生活中,您可能不需要在同一个工作站上使用 2 个不同的 ssh 身份验证,我只需要这样做来进行“测试”。
问题是,据我所知,每个 user@host (git@git.myserv.com) 注册 1 个 key ,我需要两个 key ...我在使用 git bash(和 openSSH)后发现) 在 %HOMEDRIVE%%HOMEPATH%\.ssh\config
这是我的配置:
Host gitfirstuser
HostName git.myserv.com
User git
IdentityFile ~/.ssh/firstuser@git.myserv.com
Host gitseconduser
HostName git.myserv.com
User git
IdentityFile ~/.ssh/seconduser@git.myserv.com
其中 firstuser@git.myserv.com
和 seconduser@git.myserv.com
是 OpenSSH key 格式的私钥文件
在那之后,我可以使用 git bash
testcreation.git
git clone gitseconduser:testcreation
所以推、 pull 等...
但是当你有一些 GUI 狂热者时,git bash 只是一场噩梦,所以这里是 TortoiseGit 中的解决方案,让它使用 REAL ssh 客户端:
打开 TortoiseGit 设置:
> Network section > SSH Client input > Browse...
在 msysgit 安装目录中查找 ssh.exe,在我的例子中:
C:\Program Files\Git\bin\ssh.exe
一旦您将 ssh 客户端更改为 ssh.exe,您就可以充分利用您的 ssh 配置文件。
例如:
在你的 %HOMEDRIVE%%HOMEPATH%\.ssh\config
Host ssh_host_1
HostName git.myserv.com
User git
IdentityFile ~/.ssh/ssh_host_1_keyfile
在 TortoiseGit 中添加远程或克隆时使用以下 url:
ssh_host_1:repository_name
无需寻找私钥文件,openssh会根据ssh_host_1
段进行识别
关于git - TortoiseGIT + Gitolite 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21726745/
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我已成功创建gitolite-admin.git服务器上的存储库(例如)10.107.105.13 。我可以在本地计算机上克隆此存储库(例如)10.14.42.7通过发布 git clone gito
我想使用本地帐户在我的 gitolite 服务器上创建一个新存储库,而不通过 SSH 访问。这可能吗?它们是我可以使用的一些 gitolite 脚本吗? 如果我尝试通过系统上的 git 用户通过查看
我正在尝试使用 Gitolite 在 Gitlab 中创建一个新分支。我完成安装步骤。当我遇到“设置 gitolite”部分时,我遇到了麻烦。我关注了这个link . 当我运行
我正在尝试在我的 ubuntu 服务器机器上安装 gitolite。 尽管如此,还有很多事情我还不知道,但我按照它的指示非常缓慢地前进(http://sitaramc.github.com/gitol
我在 Ubuntu 12.04 上安装了 Gitolite 3.5.3。我创建了测试存储库,我只能通过 gitolite 用户而不是其他用户通过 ssh 访问它。 我需要允许通过 ssh 访问其他系统
这可能吗?我的 authorized_keys 文件被删除,更新 gitolite 管理规则仅附加到文件。是否可以根据 gitolite 配置重新生成整个文件? 编辑:找到了! gitolite 触发
快速说明:在有人指出之前,我最初是在 Server Fault 上发布这个的,但在发布之后我意识到这个站点可能更合适。抱歉“双重发帖”。 大约 6 个月前我安装了 gitolite,突然间我开始收到这
我正在尝试在 redhat 虚拟机上安装 gitolite。现在,机器未连接到互联网。因此,我无法运行标准安装的“克隆”步骤。我的机器上确实有源代码,当我运行“install -ln”步骤时 - 它会
完整的错误信息是: could not symlink /var/lib/gitolite/.gitolite/hooks/common/gitolite-hooked to subdir/myrep
我正处于让 Git 和 Gitolite 工作的最后阶段。这是目前的情况: 最佳答案 Gitolite 管理下的存储库没有工作副本。所以你要做的是创建另一个带有工作副本的存储库,提交数据并将它们推送到
我有一个奇怪的问题。我使用 TortoiseGIT (Win7) 并且我的存储库放置在虚拟服务器 (Debian) 上,我使用 gitolite 和 SSH key 。 我可以 clone存储库到我的
我是第一次设置 gitolite。我正在关注 this instructions . 当我 ssh 时,它看起来很好: $ ssh -p 2222 gitolite@debian PTY alloca
我已经配置了一个存储库和一组用户。 我已将该存储库的读取权限授予该组。 但是当我以不在组中的用户身份登录时,我能够读取存储库。 它在 gitweb 中列出了该存储库。为什么会这样? @all =
每当我尝试在我的笔记本电脑上克隆任何存储库时,我都会收到此消息: Unable to open connection: Host does not existfatal: Could not read
我已经在 ubuntu 服务器上设置了一个 gitolite 存储库,目的是让开发人员克隆/推送我们将要处理的项目。我在 repo 中的接收后 Hook 有问题。我在一个特定的 repo 中有一个接收
我尝试在 this manual 之后安装 git + gitolite - 使用来自服务器的根安装。我只是不明白新的 gitolite 用户是否必须拥有他们的用户帐户?。当我将 tester.pub
我对 gitolite 有点困惑权限。 仅允许 1 个分支并拒绝特定用户或组的所有其他分支的最佳方法是什么? 最佳答案 参见“partial-copy: selective read control
如何配置 git 和 gitolite 以允许特定用户仅更改特定目录内的文件? 例如原始主分支中的文件: /dir1/ /dir2/file1 /dir2/file2 /dir3/file1 用户 k
我正在尝试在我的服务器(Macos 服务器)上设置 gitolite。 我按照此处找到的安装文档中的说明进行操作: http://sitaramc.github.com/gitolite/doc/1-
我是一名优秀的程序员,十分优秀!