SSH 金鑰管理工具

2020-03-01 12:23:00

常用開源工具的省時快捷方式。

我經常使用 SSH。我發現自己每天都要登入多個伺服器和樹莓派(與我位於同一房間,並接入網際網路)。我有許多裝置需要存取,並且獲得存取許可權的要求也不同,因此,除了使用各種 ssh / scp 命令選項之外,我還必須維護一個包含所有連線詳細資訊的組態檔。

隨著時間的推移,我發現了一些省時的技巧和工具,你可能也會發現它們有用。

SSH 金鑰

SSH 金鑰是一種在不使用密碼的情況下認證 SSH 連線的方法,可以用來加快存取速度或作為一種安全措施(如果你關閉了密碼存取許可權並確保僅允許授權的金鑰)。要建立 SSH 金鑰,請執行以下命令:

$ ssh-keygen

這將在 ~/.ssh/ 中建立一個金鑰對(公鑰和私鑰)。將私鑰(id_rsa)保留在 PC 上,切勿共用。你可以與其他人共用公鑰(id_rsa.pub)或將其放置在其他伺服器上。

ssh-copy-id

如果我在家中或公司工作時使用樹莓派,則傾向於將 SSH 設定保留為預設設定,因為我不擔心內部信任網路上的安全性,並且通常將 SSH 金鑰(公鑰)複製到樹莓派上,以避免每次都使用密碼進行身份驗證。為此,我使用 ssh-copy-id 命令將其複製到樹莓派。這會自動將你的金鑰(公鑰)新增到樹莓派:

$ ssh-copy-id [email protected]

在生產伺服器上,我傾向於關閉密碼身份驗證,僅允許授權的 SSH 金鑰登入。

ssh-import-id

另一個類似的工具是 ssh-import-id。你可以使用此方法通過從 GitHub 匯入金鑰來授予你自己(或其他人)對計算機或伺服器的存取許可權。例如,我已經在我的 GitHub 帳戶中註冊了各個 SSH 金鑰,因此無需密碼即可推播到 GitHub。這些公鑰是有效的,因此 ssh-import-id 可以使用它們在我的任何計算機上授權我:

$ ssh-import-id gh:bennuttall

我還可以使用它來授予其他人存取伺服器的許可權,而無需詢問他們的金鑰:

$ ssh-import-id gh:waveform80

storm

我還使用了名為 Storm 的工具,該工具可幫助你將 SSH 連線新增到 SSH 設定中,因此你不必記住這些連線細節資訊。你可以使用 pip 安裝它:

$ sudo pip3 install stormssh

然後,你可以使用以下命令將 SSH 連線資訊新增到設定中:

$ storm add pi3 [email protected]

然後,你可以只使用 ssh pi3 來獲得存取許可權。類似的還有 scp file.txt pi3:sshfs pi pi3:

你還可以使用更多的 SSH 選項,例如埠號:

$ storm add pi3 [email protected]:2000

你可以參考 Storm 的文件輕鬆列出、搜尋和編輯已儲存的連線。Storm 實際所做的只是管理 SSH 組態檔 ~/.ssh/config 中的專案。一旦了解了它們是如何儲存的,你就可以選擇手動編輯它們。設定中的範例連線如下所示:

Host pi3   user pi   hostname 192.168.1.20   port 22

結論

從樹莓派到大型的雲基礎設施,SSH 是系統管理的重要工具。熟悉金鑰管理會很方便。你還有其他 SSH 技巧要新增嗎?我希望你在評論中分享他們。