將SSH金鑰複製到不同的Linux機器


概述

使用SSH金鑰時,務必妥善保管。我們可以透過將金鑰儲存在加密檔案中來防止意外刪除。我們還可以透過將金鑰儲存在離線狀態來確保它們不會在有人試圖竊取時被洩露。例如,我們可以將它們儲存在USB驅動器上受密碼保護的資料夾中。

但是,這不是最佳方法。如果您有多臺機器並想將金鑰從一臺機器複製到另一臺機器,那麼與複製金鑰檔案相比,有更好的方法。本文將向您展示如何在兩臺不同的計算機之間安全地複製SSH金鑰。

在我們的機器上

在我們的本地計算機上,我們將SSH金鑰儲存在一個名為.ssh的子目錄中。

drwx------ 5 vagrant vagrant 160 Apr 23 13:11 .ssh

.ssh目錄僅對我們自己的使用者帳戶可見,幷包含兩個檔案:

$ ls -l .ssh
total 16
-rw------- 1 vagrant vagrant 1843 Mar 27 15:09 id_rsa
-rw-r--r-- 1 vagrant vagrant 413 Mar 27 15:10 id_rsa.pub

我們的私鑰儲存在id_rsasubjective.pem中,我們需要將金鑰對的公鑰部分(id_rsa.pub)移動到另一臺計算機,以便我們可以使用它們來簽署訊息。

手動複製

我們首先需要手動將公鑰從一臺計算機複製到另一臺計算機。為此,我們使用scp命令。

$ scp .ssh/id_rsa.pub our_username@other_machine:

我們需要將檔案從我們的計算機傳輸到遠端伺服器,並在終端視窗中輸入我們的密碼。之後,我們需要使用我們的使用者名稱和密碼登入到遠端伺服器。為了確保我們的主資料夾具有與本地計算機上相同的許可權,我們首先需要確保遠端伺服器的主資料夾也包含一個名為.ssh的資料夾,並且具有與我們計算機上相同的訪問許可權。

$ mkdir .ssh
$ chmod 700 .ssh

此目錄應該包含一個authorized_keys檔案,該檔案僅對我們自己的帳戶可見。

$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys

輸入應是我們想要允許使用者登入的每個金鑰對的公鑰列表。我們將把我們傳輸的公鑰新增到此列表中。

$ cat id_rsa.pub >> .ssh/authorized_keys

登入到這臺其他計算機時,我們不再需要輸入密碼。

使用ssh-copy-id

手動方法需要大量工作。幸運的是,Linux自帶一個方便的工具可以為我們完成所有工作。這個工具名為ssh-copy-id。我們只需在終端視窗中輸入以下內容:

$ ssh-copy-id our_username@other_machine

我們將把我們的公鑰從當前位置複製到另一臺計算機,執行與我們上面手動執行的相同步驟。

結論

我們學習瞭如何手動為GitHub建立SSH金鑰對。要進行手動建立,我們必須確保所有檔案預設情況下都是受限制的。最簡單的方法是使用ssh-keygen命令。

更新於:2022年12月23日

433 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告