文章彙整

SSH 金鑰是個好主意

Astral WebBy Astral Web 2 weeks agoNo Comments
首頁  /  其他  /  專案管理  /  SSH 金鑰是個好主意

「密碼」是很糟糕認證方式!密碼需注意不可丟失,且使用上也相對麻煩。值得慶幸的是,SSH 金鑰可讓遠端連線更加輕鬆,讓我們從透過 ssh-keygen 製作金鑰來開始今天的介紹吧!

ssh-keygen

指令會詢問你保存金鑰的位置以及使用的檔案名稱,雖說這並非必要的動作,但我建議為每一個你要連接的伺服器製作一個 keyrepair,你也可以使用密碼來保護你的密鑰。接著準備複製你想要造訪的遠端伺服器的公開金鑰,這步驟可透過 Linux 提供的實用程序「ssh-copy-id」來進行,即可將密鑰透過下方指令將公開金鑰傳送至遠端伺服器:

ssh-copy-id -i /path/to/private/key [email protected]

你將被指示輸入平時連接至遠端伺服器時所使用的密碼,這將會把 /path/to/public/key 中的內容附加到遠端伺服器的 ~/.ssh/authorized_keys 檔案中。

接著依照以往的方式,試著從你的遠端伺服器中登入,你可能會需要指定所使用的金鑰,如下:

ssh -i /path/to/private/key [email protected]

若金鑰成功的複製了,當你登入遠端伺服器時,你不會需要再次輸入密碼即可登入!

你也可以選擇在遠端伺服器中停用密碼驗證,如果你有可透過金鑰登入的 root/sudo 用戶 (而且你有確實備份好這些金鑰),你可以安全地停用密碼驗證,並僅允許使用金鑰的驗證。

以 root 方式編輯 /etc/ssh/sshd_config 並編輯或新增以下指令:

PasswordAuthentication no

保存並重整 sshd。開啟一個新的終端機並試著透過 SSH 再次進入遠端伺服器中,若一切都正常顯示就表示你成功了!

另外,我喜歡把我的遠端伺服器加至 ~/.ssh/config 檔案中。如下:

....
Host server1 server1.example.com
HostName server1.example.com
User superawesomesshuser
Port 4242
IdentityFile /path/to/private/key
....

我可以輸入 “ssh server1” 或 “ssh server1.example.com”,這可大幅的減少我進入伺服器中所需的時間,若同事們對於同一個伺服器使用不同的名稱,我可將多個 host 名稱包含在一起,仍可進入同一個伺服器中。

我也建議將你的 SSH 金鑰與 ~/.ssh/config 保存在一個非公開的 GIT repo 中,並將你的 dotfiles 保存在版本管控內,可使後續的移動與管理更加簡單!如果想了解dotfiles的相關應用,我真心推薦 Atlassian 所提供的 dotfiles 指南

 

喜歡我們的文章嗎?請務必訂閱訂閱歐斯瑞電子報,以及追蹤我們的臉書粉絲團Instagram喔!

以上內容由Astralweb 歐斯瑞編寫製作

 000

推薦文章

Categories:
  專案管理其他

留下回應

你的電子郵件地址不會被公開.

取得獨家電子商務祕技

建立更好的策略靈感

跟上全球的網路趨勢

絕佳的電商解決方案

電子商務戰略全指南

每月發送電商戰略指南,只要填寫E-mail即可訂閱!

請到您的信箱確認,即可完成訂閱。