帶你了解SSH密鑰管理工具
常用開源工具的省時快捷方式。
我經(jīng)常使用 SSH。我發(fā)現(xiàn)自己每天都要登錄多個服務(wù)器和樹莓派(與我位于同一房間,并接入互聯(lián)網(wǎng))。我有許多設(shè)備需要訪問,并且獲得訪問權(quán)限的要求也不同,因此,除了使用各種 ssh
/ scp
命令選項(xiàng)之外,我還必須維護(hù)一個包含所有連接詳細(xì)信息的配置文件。
隨著時間的推移,我發(fā)現(xiàn)了一些省時的技巧和工具,你可能也會發(fā)現(xiàn)它們有用。
SSH 密鑰
SSH 密鑰是一種在不使用密碼的情況下認(rèn)證 SSH 連接的方法,可以用來加快訪問速度或作為一種安全措施(如果你關(guān)閉了密碼訪問權(quán)限并確保僅允許授權(quán)的密鑰)。要創(chuàng)建 SSH 密鑰,請運(yùn)行以下命令:
$ ssh-keygen
這將在 ~/.ssh/
中創(chuàng)建一個密鑰對(公鑰和私鑰)。將私鑰(id_rsa
)保留在 PC 上,切勿共享。你可以與其他人共享公鑰(id_rsa.pub
)或?qū)⑵浞胖迷谄渌?wù)器上。
ssh-copy-id
如果我在家中或公司工作時使用樹莓派,則傾向于將 SSH 設(shè)置保留為默認(rèn)設(shè)置,因?yàn)槲也粨?dān)心內(nèi)部信任網(wǎng)絡(luò)上的安全性,并且通常將 SSH 密鑰(公鑰)復(fù)制到樹莓派上,以避免每次都使用密碼進(jìn)行身份驗(yàn)證。為此,我使用 ssh-copy-id
命令將其復(fù)制到樹莓派。這會自動將你的密鑰(公鑰)添加到樹莓派:
$ ssh-copy-id pi@192.168.1.20
在生產(chǎn)服務(wù)器上,我傾向于關(guān)閉密碼身份驗(yàn)證,僅允許授權(quán)的 SSH 密鑰登錄。
ssh-import-id
另一個類似的工具是 ssh-import-id
。你可以使用此方法通過從 GitHub 導(dǎo)入密鑰來授予你自己(或其他人)對計(jì)算機(jī)或服務(wù)器的訪問權(quán)限。例如,我已經(jīng)在我的 GitHub 帳戶中注冊了各個 SSH 密鑰,因此無需密碼即可推送到 GitHub。這些公鑰是有效的,因此 ssh-import-id
可以使用它們在我的任何計(jì)算機(jī)上授權(quán)我:
$ ssh-import-id gh:bennuttall
我還可以使用它來授予其他人訪問服務(wù)器的權(quán)限,而無需詢問他們的密鑰:
$ ssh-import-id gh:waveform80
storm
我還使用了名為 Storm 的工具,該工具可幫助你將 SSH 連接添加到 SSH 配置中,因此你不必記住這些連接細(xì)節(jié)信息。你可以使用 pip
安裝它:
$ sudo pip3 install stormssh
然后,你可以使用以下命令將 SSH 連接信息添加到配置中:
$ storm add pi3 pi@192.168.1.20
然后,你可以只使用 ssh pi3
來獲得訪問權(quán)限。類似的還有 scp file.txt pi3:
或 sshfs pi pi3:
。
你還可以使用更多的 SSH 選項(xiàng),例如端口號:
$ storm add pi3 pi@192.168.1.20:2000
你可以參考 Storm 的文檔輕松列出、搜索和編輯已保存的連接。Storm 實(shí)際所做的只是管理 SSH 配置文件 ~/.ssh/config
中的項(xiàng)目。一旦了解了它們是如何存儲的,你就可以選擇手動編輯它們。配置中的示例連接如下所示:
Host pi3
user pi
hostname 192.168.1.20
port 22
結(jié)論
從樹莓派到大型的云基礎(chǔ)設(shè)施,SSH 是系統(tǒng)管理的重要工具。熟悉密鑰管理會很方便。你還有其他 SSH 技巧要添加嗎?