gpt4 book ai didi

git - TortoiseGIT + Gitolite 3

转载 作者:太空狗 更新时间:2023-10-29 14:38:41 25 4
gpt4 key购买 nike

我刚刚在 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

中使用 ssh 配置文件

这是我的配置:

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.comseconduser@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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com