一般傳統的 ssh 連線方式是輸入 ssh {user_name}@{host_ip or host_domain}
再來就是輸入 user_name
對應的密碼,然後每次都要輸入密碼,其實很折騰人
這時候使用金鑰進行連線就派上用場了,只要先在發起 ssh 連線的電腦先產生一組金鑰對,然後再把產生的公鑰傳送給預備要連的目標主機內,這樣子就可以在不輸入密碼的情況透過 ssh 登入目標主機了
產出金鑰 (如果已經有金鑰可跳過此步驟)ssh-keygen -t ed25519 -C "your_email@example.com"
執行後會產生兩個檔案:~/.ssh/id_ed25519.pub
, ~/.ssh/id_ed25519
分別對應公鑰和私鑰
接下來就是把公鑰的內容填入目標主機的 ~/.ssh/authorized_keys
中,有兩種作法可以達成
ssh-copy-id -i {your_key_path} {username}@{host_ip or host_domain}
這個指令就是專門用來傳遞公鑰的指令
連進目標主機後寫入金鑰到 authorized_keys 檔案中
有一個比較簡便不用開 vim 或 nano 編輯器的方式如下
自己電腦輸入 cat ~/.ssh/id_ed25519.pub
顯示金鑰的內容 (public_key_string)
在目標主機中輸入指令 echo "{public_key_string}" >> ~/.ssh/authorized_keys
這樣也可以達成效果
如果很常跟雲端主機 ssh 聯繫感情的話,建議可以先設定一下金鑰,省下的幾秒鐘時間長期累積下來也是一個不少的時間
參考資料: