Featured image of post 一台电脑设置工作与私人GitHub账户的完整指南

一台电脑设置工作与私人GitHub账户的完整指南

学习如何在一台电脑上为工作和个人项目配置两个独立的GitHub账户,包括生成SSH密钥、配置SSH、以及推送和拉取代码的最佳实践。

阅读时长: 3 分钟
共 1132字
作者: longlikun

在使用github的时候,我们一般有两个账户,一个用于个人使用,另一个用于工作。今天在配置我的Mac时候,遇到了麻烦,我找了一些教程,但是很多说明不全面。在这篇文章中,我将把所有必要的步骤整合在一起,记录自己解决过程,希望也能帮助到你。

1. 生成SSH密钥

可以参考github doc 文档中关于生成ssh的部分 https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

假设你的两个账户分别为[email protected][email protected] ,使用以下命令生成ssh key。

    ssh-keygen -t ed25519 -C [email protected]
    ssh-keygen -t ed25519 -C [email protected]     

然后查看你的目录~/.ssh/目录 会看到下面几个文件


    ~/.ssh/id_ed25519_personal        # 个人账户的私钥
    ~/.ssh/id_ed25519_personal.pub    # 个人账户的公钥
    ~/.ssh/id_ed25519_work            # 工作账户的私钥
    ~/.ssh/id_ed25519_work.pub        # 工作账户的公钥
    

生成密钥后运行此命令,启动一个 SSH 代理并将其环境变量添加到当前 shell 中。

    eval "$(ssh-agent -s)"      

2. 修改配置文件 ~./ssh/config

然后修改 ~./ssh 下面的的config文件, 如果不存在,使用下面命令新建


    touch ~/.ssh/config

打开~/.ssh/config 文件,添加以下内容


   #GitHub for personal
   Host github.com                              # Notice the host for personal
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_ed25519_personal    # Private key for personal account

   #Github for work
   Host github.com-work                         # Notice the host for work 
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_ed25519_work        # Private key for work account

   Host *
   # UseKeychain yes                           # If you choose a password to generate keys
   AddKeysToAgent yes                        # Load the keys from keychain into ssh-agent automatically
   IdentitiesOnly yes                        # Tells the ssh-agent server to use the IdentityFiles specified above for each host

保存文件,如果你在生成ssh key的时候选择使用密码,记得把 # UseKeychain ~yes 这行注释打开。

3.将密钥添加到 macOS 钥匙串

1.–apple-use-keychain选项会将密钥存储到钥匙串中,并使密钥持久启动。

    ssh-add -D           # Will delete all identities added previously from the ssh agent
    ssh-add --apple-use-keychain ~/.ssh/id_ed25519_personal
    ssh-add --apple-use-keychain ~/.ssh/id_ed25519_work    

如果使用ssh-add -d用于删除身份,则钥匙串中的每个密钥都将被删除。(阅读手册页以ssh-add获取更多详细信息)。

2. 检查密钥是否已经添加

使用ssh-add -l检查是否已添加。

此时,如果您重新启动系统,那么密钥将自动从钥匙串加载到 ssh-agent !

4. 将公钥添加到您对应的账户中

将公钥添加到您在 GitHub 上的帐户。Github 已经有很好的文档了。有关更多信息,请参阅将新的 SSH 密钥添加到您的 GitHub 帐户。 https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account?platform=mac

5. 测试连接

测试两个帐户的连接

如果配置正确,这应该返回

    Hi USERNAME1! You've successfully authenticated, but GitHub does not provide shell access. 
    Hi USERNAME2! You've successfully authenticated, but GitHub does not provide shell access. 

6. 如何使用 –克隆仓库

如果您想使用您的personal帐户,请从 GitHub 复制远程存储库链接并将其克隆为


    git clone [email protected]:personal/project.git

如果你已经clone,可以设置remote url


    git remote set-url origin [email protected]:personal/project.git

如果你想使用你的工作账户,把通过将主机[email protected]替换为工作主机[email protected]来修改


git clone [email protected]:company/project.git

设置远程originurl的规则相同


git remote set-url origin [email protected]:company/project.git

7. 测试一下

在 GitHub 上创建一个存储库,然后按照上面的说明克隆它。将当前工作目录更改为本地存储库。为此存储库配置用户电子邮件和名称(您也可以全局执行,但我更喜欢这种方式)。 如果您克隆了帐户的存储库work,则将其配置为

    git config --local user.email "[email protected]"
    git config --local user.name "work"

现在您可以向 GitHub 远程存储库推送/拉取。

微信公众号

使用 Hugo 构建
主题 StackJimmy 设计