設定 SSH config 來提升工作效率(Setup SSH config to improve efficiency)

為何需要設定 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

參考資料

Using the SSH Config File

Tags:
# productivity
# ssh