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