# MAC 設定快速SSH,不用再記冗長的IP與PORT位址
## Step1: 新增一個公私鑰
先在切換到ssh下的目錄
```shell
cd ~/.ssh
```
切換到ssh的目錄後,產生公鑰私鑰(RSA),輸入以下指令
```shell
ssh-keygen
```
在產生金鑰的過程中,會詢問一些問題,對於一般的使用者而言,全部都使用預設值(直接按下 Enter 鍵)即可。
```shell
Enter passphrase (empty for no passphrase):
```
指定金鑰保護密碼,如果有設定密碼的話,**以後每次使用都要輸入密碼**,除你需要非常高的安全性,否則就不用設定了,直接按下 Enter 鍵即可。
這裡會顯示金鑰的指紋(fingerprint)與 randomart,而產生的金鑰會有兩個檔案:
- `id_rsa.pub`:公開金鑰(public key),這是可以對外公開的金鑰,之後要將它放在遠端的 Linux 伺服器上作認證使用。
- `id_rsa`:私密金鑰(private key),這是要保護好的金鑰,它等同於你的 Linux 密碼,放在自己的電腦中。
## Step2: 將公鑰放入Server
它預設會將 ~/.ssh/id_rsa.pub 這個公開金鑰複製到伺服器上,若要指定使用的金鑰,可以使用 -i 參數:
```shell
ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST
```
成功後連入這個Server就不用輸入密碼,下一步則是如何用一個簡單的名稱紀錄這個Server。
## Step3: 新增Server快捷
之後一樣在local端的`~/.ssh`資料夾下,新增一個config檔案
```shell
touch config
```
並將你的USER@HOST打成下列形式:
```shell
Host nickname
HostName 123.123.123.123
Port 22100
User 12345678
IdentityFile ~/.ssh/id_rsa
```
1. Host: 方便記憶這個Server的簡稱,以後輸入這個可以直接連
2. HostName: Server的IP位址
3. Port: 服務的端口
4. User: User Name
5. IdentityFile: local端的私鑰位址,要用這個key認證Server的公鑰
## Step4: 快速登入
大功告成啦!之後只要輸入`ssh nickname`就可以不用輸入密碼並用好記的名稱登入Server了!
## 參考資料
- [SSH 公開金鑰認證:不用打密碼登入 Linux 設定教學,安全又方便](https://blog.gtwang.org/linux/linux-ssh-public-key-authentication/)
- [How to create an ssh connection Terminal shortcut on Mac OS X?](https://superuser.com/questions/76193/how-to-create-an-ssh-connection-terminal-shortcut-on-mac-os-x)