譯自文章 https://help.github.com/articles/connecting-to-github-with-ssh/
1.SSH協(xié)議
- 使用SSH協(xié)議 你能連接遠(yuǎn)程服務(wù)跟自身的服務(wù)進(jìn)行身份驗(yàn)證,使用SSH密鑰,能使你在每次連接服務(wù)器的時(shí)候不用輸入用戶(hù)名和密碼袜瞬。
以下操作都是在終端進(jìn)行
2.檢查是否存在SSH密鑰
#列出~/.ssh中的文件
ls -al ~/.ssh
3.生成SSH密鑰并加入ssh-agent
-
生成密鑰
ssh-agent -- 可以管理ssh密鑰跟記得你的密碼 如此便可以在你每次使用ssh密鑰時(shí)不用輸入密碼ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
終端輸出
Enter file in which to save the key (/Users/yourname/.ssh/id_rsa):
建議自己在 ~/.ssh 文件中添加一個(gè)文件纸淮,以免下次生成替換了當(dāng)前密鑰對(duì),如:/Users/you/.ssh/test
然后提示設(shè)置密碼拥诡,您隨意比默。
2.加入agent
- 在后臺(tái)啟動(dòng)ssh-agent
eval "$(ssh-agent -s)"
2.如果你使用macOS Sierra 10.12.2或更高版本的系統(tǒng)恬总,你需要手動(dòng)修改文件 ~/.ssh/config 讓ssh-agent自動(dòng)加載密鑰并存儲(chǔ)在你的鑰匙串中
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/test
3.將你的密鑰加入agent并存儲(chǔ)到鑰匙串中
$ ssh-add -K ~/.ssh/test
4.修改ssh密鑰的密碼
還記得 2中生成密鑰對(duì)時(shí)讓你輸入密碼嗎鸣峭?如果你嫌將他們加入ssh-agent麻煩宏所,又不想每次連接服務(wù)器都要輸入密碼,怎么辦呢摊溶?那就不設(shè)密碼唄爬骤,也就是說(shuō) 2中生成密鑰對(duì)時(shí)密碼可以為空,如果已經(jīng)設(shè)了密碼那就可以用這個(gè)重設(shè)為空了
啟動(dòng)ssh密鑰的創(chuàng)建過(guò)程
ssh-keygen -p
終端會(huì)輸出
Enter file in which the key is (/Users/you/.ssh/id_rsa):/Users/you/.ssh/ test
Enter new passphrase (empty for no passphrase): [Type new passphrase]
Enter same passphrase again: [One more time for luck]
Your identification has been saved with the new passphrase.
ps.
如果不想每次啟動(dòng)都輸入密碼莫换,還可以添加ssh的公鑰到authorized_keys文件中
// 添加ssh的公鑰到authorized_keys文件中
$ mkdir ~/.ssh && cd ~/.ssh
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys