[toc]
查看
ssh-add -l
3072 SHA256:HpFoxdG1UO2U+gX3r45Z9SJrBjSZ/SlT3wH+BDCrQz0 youremail@example.com (RSA)
3072 SHA256:VlXQsANIE7eH/Gttk2vAsvQ6bMzZTvWSgMdu9U3ynog youremail@example.com(RSA)
生成不同名稱的ssh密鑰
# 其中g(shù)itlab,github, 和name 我主要用來(lái)區(qū)別是那個(gè)平臺(tái),自己可隨意只要你能區(qū)分就行
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitlab.name -C "youremail@example.com"
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github.name -C "youremail@example.com"
輸入過(guò)程中可以不輸入密碼, 直接回車雏门,懶人方式
會(huì)在 ~/.ssh/
, 目錄下生成兩個(gè)文件, 一個(gè)是 id_rsa.gitlab.name
和 id_rsa.gitlab.name.pub
文件,
新建ssh配置文件
touch ~/.ssh/config
config的內(nèi)容如下:
#github配置
# 別名 , 如果是你又多個(gè)github 賬號(hào), 需要配置多個(gè)sshkey 就用這個(gè)來(lái)區(qū)分的
# 多個(gè)github 賬號(hào) : Host username.github.com
Host github.com
# 端口, 默認(rèn)是22可以不寫夺衍,如果自己搭建的服務(wù)器監(jiān)聽的是其他端口這個(gè)參數(shù)必須聲明
Port 22
# IP地址或者域名
Hostname github.com
# 下面可以直接寫 `git` 當(dāng)然你也可以寫指定用戶
user user@github.com
# 對(duì)應(yīng)的私鑰路徑
IdentityFile ~/.ssh/id_rsa.github
#gitlab配置
# 別名 , 如果是你又多個(gè)github 賬號(hào), 需要配置多個(gè)sshkey 就用這個(gè)來(lái)區(qū)分的
# 多個(gè)github 賬號(hào) : Host username.github.com
Host gitlab
# 端口, 默認(rèn)是22可以不寫,如果自己搭建的服務(wù)器監(jiān)聽的是其他端口這個(gè)參數(shù)必須聲明
Port 22
# IP地址或者域名
Hostname gitlab.com
# 下面可以直接寫 `git` 當(dāng)然你也可以寫指定用戶
user user@gitlab.com
# 對(duì)應(yīng)的私鑰路徑
IdentityFile ~/.ssh/id_rsa.gitlab
添加私鑰
ssh-add ~/.ssh/id_rsa.gitlab
ssh-add ~/.ssh/id_rsa.github
配置公鑰
# ~/.ssh/ 下面的.pub 文件全部都是公鑰,需要上傳到對(duì)應(yīng)的平臺(tái), 流程略, 參考平臺(tái)地址
cat ~/.ssh/xx.pub
將輸出的結(jié)果復(fù)制
設(shè)置遠(yuǎn)程庫(kù)的地址
git remote add origin git@github:test/test.git
測(cè)試
ssh -T git@github.com (域名)
ssh -T git@config文件中的別名
ssh -T git@ip地址
# 終端輸出
Hi Rosalindjuan! You've successfully authenticated, but GitHub does not provide shell access.
- 如果終端有新添加的ssh-key 也需要在
~/.ssh/config
配置
分別輸入對(duì)應(yīng)密鑰的密碼殉摔,測(cè)試成功。
記得在設(shè)置遠(yuǎn)程倉(cāng)庫(kù)地址的時(shí)候拼卵,修改對(duì)應(yīng)的Host名稱史汗。建議把常用的git遠(yuǎn)程倉(cāng)庫(kù)設(shè)置為默認(rèn)的密鑰,生成默認(rèn)密鑰的命令如下:
只要Host不在config文件中,都是讀取默認(rèn)密鑰窍侧。
ssh-keygen -t rsa -C "youremail@example.com"
刪除
ssh-add -D
一個(gè)托管平臺(tái)多個(gè)ssh key
配置
# 用戶1
Host username1.github.com
Hostname github.com
user git
IdentityFile ~/.ssh/id_rsa.username1.github
# 用戶2
Host username2.github.com
Hostname github.com
user git
IdentityFile ~/.ssh/id_rsa.username2.github
使用
注意下面的username1 和username2
用戶1
# 舉個(gè) ??
git clone git@username1.github.com:username/example.git
git remote set-url origin git@username1.github.com/username/example.git
用戶2
# 舉個(gè) ??
git clone git@username2.github.com:username/example.git
git remote set-url origin git@username2.github.com/username/example.git
測(cè)試
ssh-add -T git@username1.github.com
ssh-add -T git@username2.github.com