如何自訂 SSH 金鑰的名稱?

前言

如果你從事網路相關的工作,SSH 會是很常見的需求,像是 SFTP、管理遠端主機的登陸、Git 遠端存儲倉的訪問等等,都會需要使用到 SSH。

預設的情況下,SSH 金鑰檔名會是 id_xxx 的形式,如果你只有一組金鑰,使用預設檔名即可。

但在實際的應用場景中,往往需要多組金鑰來應對不同的使用環境,例如:家裡及公司就是兩個不同的環境,為了私鑰的安全及管理起見,一般我們都會將之區分開來。這時我們就需要產生一組公司使用的金鑰及一把家裡使用的金鑰,並在新增金鑰的時候為不同用途的金鑰命名,以之區隔。

產生自訂名稱的 SSH 金鑰

ssh-keygen -t ed25519 -f ~/.ssh/ossian -C "[email protected]"

上面的指令共有三個參數要注意,分別為:

  • -t ed25519:使用 Ed25519 演算法
  • -f ~/.ssh/ossian:指定存放路徑及檔名,檔名可以自訂,範例使用的檔名為 ossian,你可以改成任意喜歡的名稱。
  • -C "[email protected]":註釋,常見都用信箱。

其中 -t ed25519 為必要的參數,用來指定演算法,如果沒有填寫的話,預設會使用 RSA 。另外兩個可以視情況決定要不要添加。要注意的是如果你沒有指定名稱的話,預設的檔名為 id_rsa 或 id_ed25519。

檢查現有的金鑰

當你完成上面的操作後,理論上你已經有一把自己的金鑰,要如何找到自己的金鑰呢?

首先,開啟終端機,並輸入下面的指令,它會列出 .ssh 目錄下所有的檔案。

ls -al ~/.ssh

如果你沒有針對金鑰命名的話,預設情況下應該會看到類似下面的檔案,當你看到時,表示你的金鑰已經產生。

  • id_rsa
  • id_rsa.pub
  • id_ed25519
  • id_ed25519.pub

其中,沒有副檔名的 id_rsa 和 id_ed25519 表示私鑰,以 RSA 或 Ed25519 演算法產生,請妥善保存好。id_rsa.pub 及 id_ed25519.pub 以 .pub 為副檔名則是公鑰,可以上傳到網站或伺服器裡。

反之,如果你有針對金鑰命名的話,如前述 ossian 的例子,我們就會在 ~/.ssh 的目錄下看到下面兩個檔案。

  • ossian (私鑰)
  • ossian.pub (公鑰)

發生 Pemission denied (publickey) 的錯誤該如何解決?

這個情況會依你的設定而有所不同,一般來說我會檢查下面幾點:

  • 確認 .ssh 的目錄權限是否為 700,如果不是的話,可以透過下面的指令設定:
    chmod 700 ~/.ssh
ssh-chmod-1
  • 確認金鑰 (私鑰) 權限是否為 600,如果不是的話,可以透過下面的指令設置,並將 ossian 改成你的私鑰名稱:
    chmod 600 ~/.ssh/ossian
  • 公開金鑰是否加到 authorized_keys 信任清單裡?如果沒有的話,請輸入下面的指令,其中,ossian.pub 改成你的公鑰名稱:
    cat ~/.ssh/ossian.pub >> ~/.ssh/authorized_keys

完成後將其權限改為 600,指令如下:

個人使用:

chmod 600 ~/.ssh/authorized_keys

多人共享 authorized_keys:

chmod 644 ~/.ssh/authorized_keys

這樣你就可以自行決定要將哪一組金鑰可以擁有訪問 SSH 伺服器的權限,如果你有多組金鑰要管理,這點會非常重要。

延伸閱讀

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端