iT邦幫忙

2024 iThome 鐵人賽

DAY 1
1
自我挑戰組

技術隨筆系列 第 1

透過金鑰進行免密碼的 ssh 連線

  • 分享至 

  • xImage
  •  

一般傳統的 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 中,有兩種作法可以達成

  1. ssh-copy-id -i {your_key_path} {username}@{host_ip or host_domain}
    這個指令就是專門用來傳遞公鑰的指令

  2. 連進目標主機後寫入金鑰到 authorized_keys 檔案中
    有一個比較簡便不用開 vim 或 nano 編輯器的方式如下

自己電腦輸入 cat ~/.ssh/id_ed25519.pub 顯示金鑰的內容 (public_key_string)
在目標主機中輸入指令 echo "{public_key_string}" >> ~/.ssh/authorized_keys
這樣也可以達成效果

如果很常跟雲端主機 ssh 聯繫感情的話,建議可以先設定一下金鑰,省下的幾秒鐘時間長期累積下來也是一個不少的時間

參考資料:


下一篇
你的 ssh 金鑰夠安全嗎? - 增強 ssh 金鑰的安全性
系列文
技術隨筆30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言