【问题标题】:How to configure Git SSH for multiple users in the same computer [closed]如何为同一台计算机中的多个用户配置 Git SSH [关闭]
【发布时间】:2021-10-10 19:09:40
【问题描述】:

HTTP 凭据(Windows 机器)从该机器为单个用户创建一个永久身份。提交时,如果没有凭据,Git 会提示他们的用户名和密码登录界面,并为刚刚登录的单个用户创建此机器的引用。

这在两种情况下是有问题的:

  1. 共享机器的开发者
  2. 拥有多个项目并从他/她的不同帐户访问这些项目的开发者

Git 是程序员常用的软件工具,我们是一个由来自一家小型初创公司的 16 名开发人员组成的团队,我们中的一些人正在共享他们的机器,以便与下一回合的人一起工作。

现在我们需要一个实用的 Git 工具配置,让我们能够解决用户共存的问题,以开发我们的软件,以取代因需要而实施的不良做法。

Git 允许对 SSH 拉/推/等进行多用户配置,但我们找不到有效的示例或文档。

我们所做的——不好的做法:

这是 一台机器(PC 电脑 - Windows 10),由 4 个用户(tom、bob、anna 和 cindy)使用,他们每个人都在不同的github repos。

每天谁先删除所有凭据和 ssh-keygen,设置他们自己的并在他们的项目中工作。每个用户都这样做。

我们尝试什么配置:

我们尝试 ssh-keygen ssh-keygen -t ed25519 -C "tom/bob/anna/cindy@email.com",添加到 ssh 代理,并在我们的 repos 中设置。这不行,我们得到一个“git@github.com: Permission denied (publickey)”。

我们尝试credential 配置,例如用户名、电子邮件--global 和 git 配置。没有任何效果。 -vT 将我们与正确的用户联系起来。 crendential.helper

我们有自己的 tom.pub、bob.pub、anna.pub 和 cindy.pub,甚至还有一个 id_rsa.pub,我们每个人在自己的仓库中都有自己的密钥。

Https 凭据,配置 --local/--global

这是我们的主要问题:

如何将 Git 配置为一台机器将多个 SSH 密钥与多个用户帐户相关联,其中每个用户与自己的帐户相关联?

【问题讨论】:

  • 呸。选项:(1)花大约150美元买四台树莓派机器,给每个人自己的机器; (2) 安装 Linux 并为每个人提供自己的帐户(免费)。
  • 即使使用 Windows,您也应该能够拥有单独的用户帐户。

标签: git github github-for-windows


【解决方案1】:

最好的方法是为每个用户创建一个单独的用户帐户,然后让他们进行适当的配置。 Git 与 OpenSSH 和几乎所有其他最初为 Unix 机器编写的程序一样,其设计原则是每个用户都有一个单独的帐户,并且他们的个人配置存储在他们的主目录下。

如果你共享一个用户帐户,你也不可避免地会遇到编辑器配置、.gitconfig、shell 配置和其他各种工具的问题,因此不建议这样做。

【讨论】:

    【解决方案2】:

    同一台机器上的多个 GitHub 帐户(ssh 配置)

    3 个步骤

    1. rsa 密钥(每个用户一个)
    2. 全局config 文件在~/.ssh/
    3. 远程网址

    1。 rsa 密钥(每个用户一个)

    # Generating a SSH key
    ssh-keygen -t rsa -C "any@email.com" -f "anyName"
    
    # enable ssh-agent
    eval "$(ssh-agent -s)"
    
    # Register with ssh-agent the new SSH Keys
    ssh-add ~/.ssh/anyName
    
    # Adding SSH key to GitHub -> Settings -> SSH and GPG keys (copy/paste)
    # key inside this [file].pub filename
    # 'cat' command will prompt it out to copy/paste
    cat anyName.pub
    

    2。全局config 文件在~/.ssh/

    同一主机名可以有多个 [别名],并创建对具有自己授权的不同用户的引用。我们可以根据主机(主机别名)配置 ssh 使用特定的加密密钥。

    ~/.ssh/ 中创建一个config 文件:

    # Default GitHub
    Host [alias1]
      HostName github.com
      User git
      IdentityFile ~/.ssh/alias1
    
    # Professional github alias
    Host [alias2]
      HostName github.com
      User git
      IdentityFile ~/.ssh/alias2
    

    3。远程网址

    有两种建议的方法来修改“远程”引用,根据需要选择一种或另一种。

    1. git 命令
      这个选项足以拉和推。
    git remote add origin git@[alias]:[git-user]/[repo].git
    
    1. 在本地存储库中编辑本地 config 文件(在 ./project-name/.git/config 中)
      如果需要更复杂的配置。

    ./project-name/.git/config 或多或少类似于这个例子:

    [core]
        [...]
    [remote "origin"]
        url = git@github.com:user2/web-project.git
        [...]
    
    

    这是目标行:(此行是远程)

    url = git@github.com:[git-user]/[repo].git
    

    必须由我们的config 文件中的Host alias 更改,如下所示:

    url = git@[alias]:[git-user]/[repo].git
    

    【讨论】:

    • 这一切都很有趣,但它不是编程。整个讨论需要针对超级用户或类似用户。
    猜你喜欢
    • 2011-12-31
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    相关资源
    最近更新 更多