gpt4 book ai didi

具有 ssh 访问权限的共享主机上的 Git 存储库 - 多个用户/一个 ssh 帐户

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

我是一个试图开始为项目编写代码的小团队的一员。我已经决定是时候给 git 一个机会了(不再是 svn),并试图看看我们是否可以使用我们的共享虚拟主机在那里部署一个“公共(public)”存储库,以便我们可以轻松地向/从它推/pull 了解彼此的最新变化。

我现在遇到的问题是我们只有一个用于该托管的 ssh 帐户。过去使用过 svn,我可以在给定的一对 ssh key 上强制使用 svn 用户名,但是我似乎无法使用 git 做类似的事情(换句话说,将 ssh key 对绑定(bind)到特定的开发人员)。我不介意每个人在任何地方都拥有读/写权限,因为任何私有(private)的东西都应该保留在彼此的机器上。最后,不能使用gitosis等解决方案。

我想我的问题是如何对 git 推送负责?它是否绑定(bind)到正在使用的 ssh 帐户,或者 git config 中给出的电子邮件地址?我可以为每个开发人员创建不同的 ssh key (尽管对于同一个 ssh 帐户),然后将它们发送给开发人员吗?

最佳答案

通常你有一个 git 用户,每个人都用来提交,他们在服务器上有 ssh key ,这样你就可以登录。我使用 gitolite在工作中管理我的 git 存储库。但是,您可以仅通过 ssh 访问来完成。

登录到您的虚拟主机,为您的项目创建一个文件夹。然后让您的开发人员创建 rsa 公钥,将它们复制到您的虚拟主机的主文件夹中。将它们复制到 ~/.ssh/authorized_keys。现在,您所有的开发人员都可以通过 ssh 进入该机器。现在你让他们做 git pull webhostUsername@somehost:project.git

设置空目录的例子:

ssh user@host.com
mkdir someProject.git
cd someProject.git
git init --bare
cd ~
git clone user@host:someProject.git test
cd test
touch README
git add README
git commit -m "added readme"
git push

将开发者添加到该帐户

scp someuser_id.pub user@host.com:
ssh user@host.com
cat someuser_if.pub >> ~/.ssh/authorized_keys

现在创建该公钥的人将能够连接到您的服务器。

每个使用 git 的人都必须提供用户名和电子邮件。这就是您跟踪谁在使用它的方式。您用来推送的用户仅用于通信。

关于具有 ssh 访问权限的共享主机上的 Git 存储库 - 多个用户/一个 ssh 帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9947490/

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