Linux與命令列基礎
在自己的 PC 上用 ssh-keygen 建立公開金鑰認證的金鑰對,想不用密碼就以 ssh 連線到伺服器 server1。金鑰的放置方式何者正確?
- A把私密金鑰加入伺服器的 ~/.ssh/authorized_keys,公開金鑰只放在自己的 PC 上
- B把公開金鑰與私密金鑰都放在伺服器的 ~/.ssh,自己的 PC 上什麼都不留
- C把公開金鑰加入伺服器的 ~/.ssh/authorized_keys,私密金鑰絕不離開自己的 PC
查看答案與解析
正確答案:C. 把公開金鑰加入伺服器的 ~/.ssh/authorized_keys,私密金鑰絕不離開自己的 PC
在 SSH 的公開金鑰認證中,伺服器使用登錄在 authorized_keys 中的公開金鑰,確認連線方持有對應的私密金鑰。私密金鑰本身不會被傳送,因此只放在自己的 PC 上,並把權限設為 600 等以免被他人讀取,再以通行碼加以保護。公開金鑰(像 ~/.ssh/id_ed25519.pub 這樣的 .pub 檔案)被他人知道也沒有問題,使用 ssh-copy-id 就能把它加入伺服器的 authorized_keys。在 ssh 之上運作的 scp 或 rsync 傳送檔案時,也會使用同一把金鑰。
- A. 私密金鑰如其名,不可外流。登錄到伺服器的是公開金鑰。
- B. 若把私密金鑰放在伺服器上,能進入伺服器的人都能使用那把金鑰。而且手邊沒有私密金鑰就無法認證。
- C. 正確。在伺服器登錄公開金鑰,私密金鑰則在手邊妥善保護。