之前只使用一個 ssh key 在github上提交代碼,因爲工做緣由,須要再添加一個ssh key在公司的 gitlab上提交代碼,下面記錄下配置過程,防止遺忘。
說明下個人環境是 Win7 + msysgit + GitBash, 相信 *nux + bash 也是一樣的道理。git
第一次使用ssh生成key,默認會在用戶~(根目錄)下生成 id_rsa, id_rsa.pub 2個文件;因此須要添加多個ssh key時也會生成對應的私鑰和公鑰。github
$ ssh-keygen -t rsa -C "youremail@yourcompany.com"
在Git Bash中執行這條命令一路回車,會在 ~/.ssh/ 目錄下生成 id_rsa 和 id_rsa.pub 兩個文件,用文本編輯器將 id_rsa_pub 中的內容複製一下粘貼到github(gitlab)上。shell
$ ssh-keygen -t rsa -C "youremail@gmail.com"
注意不要一路回車,要給這個文件起一個名字, 好比叫 id_rsa_github, 因此相應的也會生成一個 id_rsa_github.pub 文件。bash
目錄結構以下:
ssh
$ ssh-add ~/.ssh/id_rsa $ ssh-add ~/.ssh/id_rsa_github
若是執行ssh-add時提示"Could not open a connection to your authentication agent",能夠現執行命令:編輯器
$ ssh-agent bash
而後再運行ssh-add命令。ide
# 能夠經過 ssh-add -l 來確私鑰列表 $ ssh-add -l # 能夠經過 ssh-add -D 來清空私鑰列表 $ ssh-add -D
在 ~/.ssh 目錄下新建一個config文件gitlab
touch config
添加內容:測試
# gitlab Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_github
$ ssh -T git@github.com
輸出
Hi user! You've successfully authenticated, but GitHub does not provide shell access. 就表示成功的連上github了code