背景: 某些项目本地 PC 无法满足计算资源,一般团队会购置一个公共的服务器作为开发机


下面以用户 alice、公共开发机器 devbox.example.com 为占位示例,说明如何确保每个人在自己的工作目录使用自己的账户完成 Git 拉取、推送和创建 CI Jobs 等流程。

连接开发机

本地在 ~/.ssh/config 添加

Host devbox
  HostName devbox.example.com
  User devuser
  Port 22
  IdentityFile ~/.ssh/id_ed25519_devbox
  IdentitiesOnly yes

其中 IdentityFile 替换为自己的 ssh 私钥

要避免每次登录输密码,将自己的公钥拷贝至服务器:

ssh-copy-id -i ~/.ssh/id_ed25519_devbox.pub devbox

这样,第一次登录输入密码后,后续直接运行 ssh devbox 就可以登录该服务器了。

目录安排

每个人在服务器上创建自己的工作目录,如 ~/alice_ws

Git 配置

Warning

请避免配置全局 git user.name, git user.email 等

为确保每个人拉取、推送、创建 CI Jobs 等流程都是使用自己的账户,请在服务器上创建自己的 SSH key。以下继续使用占位用户 alice

  1. 创建专属 ssh key:
ssh-keygen -t ed25519 -C "alice@example.com" -f ~/.ssh/id_ed25519_alice

然后把创建的公钥添加到个人 GitLab 账户。

  1. 添加个人 git config 配置文件:
# ~/.gitconfig-alice
[user]
  name = Alice
  email = alice@example.com
[core]
  sshCommand = ssh -i ~/.ssh/id_ed25519_alice -o IdentitiesOnly=yes
  1. 更新全局 git config 添加:
# ~/.gitconfig
[includeIf "gitdir/i:~/alice_ws/**"]
  path = ~/.gitconfig-alice

表示在 ~/alice_ws 目录下使用 ~/.gitconfig-alice 中的 Git 配置。

更多参考 多 ssh key 配置