利用不同的private key去存取git


如果同一台電腦需要存取不同的git項目,但由於身份的不同你會有多過一個private key SSH時很簡單的用 -i 就可以了 但git就稍為複雜  

方法一: 利用environment variable去指定SSH用的private key

GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_example" git clone example.com/repo.git

方法二(推薦): 利用ssh config

首先你需要新增一個檔案

# permission需為600
touch ~/.ssh/config

這個檔案讓你的SSH知道不同的host name對應的設置

# Company Account
host gitlab.com-company
        HostName gitlab.com
        User git
        IdentityFile ~/.ssh/my_company_id_rsa

# Personal Account
host gitlab.com-personal
        HostName gitlab.com
        User git
        IdentityFile ~/.ssh/my_personal_id_rsa

之後就可以直接用不同的private key去存取不同的repo了 但要注意是這邊用到的是你剛剛設定的gitlab.com-company,而不是gitlab.com 否則只會用默認的private key(如~/.ssh/id_rsa)

# 實例
# 存取公司repo
git clone [email protected]:company-repo/a-project.git

# 存取私人repo
git clone [email protected]:my-repo/another-project.git