git - 访问不同ip或host时如何指定不同的git账号?

标签 git github ssh git-config

我必须为内联网和外联网使用不同的 git 帐户来进行开发和软件维护任务。
例如,我必须设置一些代理,这样我才能ssh 连接到外网,但外网的 git 帐户与内网的不同。所以如果像 git config --global user.name "user" 那样设置它是全局的,那么在尝试 ssh 连接到不同网络环境中的 git 存储库时会造成一些麻烦。
所以我想知道如何为不同的环境设置不同的 git 帐户配置。
这是我现在的 .gitconfig

[http "http://git.intranet.com"]
    proxy = http://127.0.0.3:0303
[http "https://git.intranet.com"]
    proxy = http://127.0.0.3:0303
[user]
    name = bowen
    email = bowen@email.com

任何人都可以帮助我并提供一些示例或提示吗?
提前致谢。

最佳答案

创建 SSH 配置文件

如果您还没有config 文件,那么请继续创建它。

cd ~/.ssh/
touch config
code config  //command code will be used to open this file in visual code

如果配置文件已经可用,则为不同的主机添加 SSH 配置规则,这样配置将有助于选择相应的身份文件以用于提供的域。

# Intranet account--> default
Host github.com
   HostName github.com
   User <user>
   IdentityFile ~/.ssh/id_rsa

# Extranet account
Host github.com-extranet    
   HostName github.com
   User <user>
   IdentityFile ~/.ssh/id_rsa_extranet

作为 Host 提供的任何内容都是最重要的,因为这将用于克隆或设置远程源。

ssh-agent 会用到

  • id_rsa 使用@github.com 的任何 Git URL 的 key
  • id_rsa_extranet 使用@github.com-extranet 的任何 Git URL 的 key

为了使用 Intranet 凭据访问 repo,请执行以下命令

ssh-add -D              //removes all ssh entries from the ssh-agent
ssh-add ~/.ssh/id_rsa   // Adds the relevant ssh key

使用外网凭据推送或访问

ssh-add -D
ssh-add ~/.ssh/id_rsa_extranet

用于在本地设置/更新 Extranet 存储库

  • 更新远程源 URL
git remote set-url origin git@github.com-extranet:<user>/repo_name.git
  • 初始化并将其作为 Git 远程添加到本地存储库。
git init
git remote add origin git@github.com-extranet:<user>/repo_name.git

希望这对您有所帮助。有关 ssh key 和所有过程的更多信息,请阅读此 link

关于git - 访问不同ip或host时如何指定不同的git账号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62214722/

相关文章:

git - 我可以将 IP 列入白名单以处理我的 Git 存储库吗?

git - 你应该为ctags使用版本控制吗?

php - 对于像 Laravel 这样的大型项目来说,GIT 是一个很好的解决方案吗?

github - 为所有 github 存储库生成 jenkins 作业

git - 使用搜索命令从 git repo 历史记录中删除所有已删除的文件

hadoop - Ambari 服务器无法添加新主机

git - 错误 : waitpid for C:\Program Files (x86)\PuTTY\plink. exe 失败:没有子进程

php - 无法在 Linux 中的 XAMPP 上通过 php 运行 SSH

windows - Git 不会还原或提交它认为已修改的文件

git - Windows 10 上 Intellij 的 GIT 终端中的自动完成分支名称