為何需要設定 SSH config
主要的用意是提高生產力。
平常要連線到遠端的 server 時,做法會像這樣
ssh [username]@[host]
舉例
ssh peter_yang@60.116.112.193
如果是從遠端 server 複製檔案的時候,也能透過下指令完成。
scp -r [username]@[host]:/remote/directory/ /local/directory/
套用上個範例的話,就會寫成
scp -r peter_yang@60.116.112.193:/remote/directory/ /local/directory/
添加 SSH config
首先確認 ~/.ssh/
裡有無一個檔案名稱為 config
(無副檔名),如果沒有的話可自行創建
touch ~/.ssh/config
顧名思義 config
就是定義檔,可以在裡頭加入常需要連線的 server 資訊,如此一來就不用每次連線都輸入 host 和 username。
前面提到的案例,一般在連線時會下類似這樣的指令
ssh peter_yang@60.116.112.193
不過,當在 config
檔案加入了連線資訊後
# ~/.ssh/config
Host my-server
Hostname 60.116.112.193
User peter_yang
這時如果要 ssh 到 60.116.112.193
,就可以下簡短的指令達成!
ssh my-server
以後就不用再記 ip 跟 username 了 (撒花
增加預設 config
如果是常需要 access 不同 server 的角色例如 backend 或是 SRE,可能會在不同 server 間創建同樣名稱的帳號,方便辨識也避免過度繁雜的帳號管理。
這時也能在 config
裡加工一下,省去在每台 server 的 config 裡重複定義 User
。
下方範例
# ~/.ssh/config
Host my-server-1
Hostname 60.116.112.193
Host my-server-2
Hostname 41.94.6.119
Host my-server-3
Hostname 51.149.168.77
Host *
User peter_yang
等同於
# ~/.ssh/config
Host my-server-1
Hostname 60.116.112.193
User peter_yang
Host my-server-2
Hostname 41.94.6.119
User peter_yang
Host my-server-3
Hostname 51.149.168.77
User peter_yang