Mac下sshkey的配置,主要配置是為了讓本地和遠(yuǎn)端可以連接,可以pull,push。
1 Mac下單個(gè)ssh key設(shè)置
- 1 檢查ssh key 是否存在
ls -al ~/.ssh
Lists the files in your .ssh directory, if they exist
如果key存在,會(huì)有 id_rsa 和 id_rsa.pub可以直接將key復(fù)制到遠(yuǎn)程GitHub上。
- 2 如果key不存,生成key
在命令行中輸入
ssh-keygen -t rsa -C "your_email@example.com"
密碼,名稱什么的都一路回車就OK了
- 3 將共有key(id_rsa.pub)復(fù)制到遠(yuǎn)程GitHub里,同是可以給你的key起一個(gè)名字
2 Mac下多個(gè)ssh key 設(shè)置
為什么要在Mac下設(shè)置多個(gè)key呢?
說白了我就是為了玩,首先辦公的時(shí)候需要有一個(gè)ssh key 這個(gè)可能是公司辦公用的,另外如果你有自己的git賬戶,commit一些代碼的話你需要有一個(gè)自己的ssh key。
怎么設(shè)置多個(gè)key呢?
- 1 和單個(gè)key的設(shè)置一樣當(dāng)然不是檢查是否存在key了,哥們這個(gè)時(shí)候肯定已經(jīng)有了。生成key,這個(gè)時(shí)候需要注意了,不是一路狂按,設(shè)置好你的key的名稱
結(jié)果如圖:
Paste_Image.png - 2 添加新的ssh key 到ssh agent 因?yàn)槟J(rèn)只讀 id_rsa
ssh-add ~/.ssh/id_rsa_yuxi
-
3 將不同的賬號對應(yīng)的不同的ssh key 和不同的遠(yuǎn)程服務(wù)器關(guān)聯(lián)起來,這個(gè)配置是在config下配置的(如果沒有config可以自己新建)。
結(jié)果如圖:
Paste_Image.png
其規(guī)則就是:從上至下讀取config的內(nèi)容,在每個(gè)Host下尋找對應(yīng)的私鑰。這里將GitHub SSH倉庫地址中的git@github.com替換成新建的Host別名如:github2,那么原地址是:git@github.com:username/Mywork.git,替換后應(yīng)該是:github2:username/Mywork.git.
上面是我查資料看到的,具體原因我也不是很清楚,但是我理解就是做了一個(gè)域名的映射。
- 4 將id_rsa.pub 上傳到GitHub上
vim ~/.ssh/id_rsa_yuxi.pub
可以測試一下是否成功,方法如下:
ssh -T git.oschina.net
3 常見問題處理
經(jīng)常與會(huì)遇到下面這種情況,我也很納悶,每次都解析到不到域名和地址
ssh: Could not resolve hostname git.oschina.net: nodename nor servname provided, or not known
查資料之后的解決辦法是:
step1. ping address
獲取到對于地址的ip
step2. 在/etc/hosts中添加一行如下:
ip address
這樣就可以玩起來了。

