SSH Key 教學,讓你免密碼登入主機伺服器!

SSH Key 介紹

網頁設計 的領域裡,主機伺服器的操作是一個專業 網站設計師 必備的條件技能之一,而最基礎的就是要先學會登入你的主機伺服器,透過主機伺服器來操作一切你想要執行的程序。
SSH 是一種加密的連接通訊協定,可透過不安全的連線提供安全登入。 SSH 是 Azure 中裝載 Linux VM 的預設連線通訊協定。
雖然 SSH 提供加密連線,但搭配使用密碼與 SSH 連線仍會讓 VM 容易遭受暴力密碼破解攻擊。
建議使用公開/私密金鑰組(也稱為 SSH 金鑰)透過 SSH 連線至 VM。

  • 公開金鑰 會放置在您的 Linux VM 上。
  • 「私密金鑰」會保留在您的本機系統上。 保護此私密金鑰。 不要共用它。

轉自: https://docs.microsoft.com/zh-tw/azure/virtual-machines/linux/create-ssh-keys-detailed

簡單來說,SSH登入基本上是要用帳號及密碼登入你的Linux伺服器,而如果你有了SSH Key,就好比有了一個免密碼簽證,直接可以用有簽證的電腦進入該伺服器,省去輸入密碼的麻煩!

如何建立 SSH Key ?

首先,你需要打開2個終端機(小編本身是使用Windows Powershell操作)。
一台先登入你需要裝設SSH憑證的主機伺服器(此時它會要求輸入密碼)

ssh key 登入教學 1

輸入:

ssh 帳號或root@IP位置

接著,開啟第二個終端機,不用登入,只要輸入以下語法產生金鑰。

ssh-keygen -t rsa -b 4096

ssh key 登入教學 2

這時,它會開始產生金鑰,然後以下是它會在產生時詢問的問題:
Enter file in which to save the key… (你需要將此金鑰儲存成什麼樣的名稱?)
Enter passphrase… (加入一些密碼字串保護)
Enter same passphrase again… (再輸入一次密碼保護字串)
一般來說這三個問題我都會留空直接點Enter(頂多第一個問題會做一些命名)

ssh key 登入教學 3

總之都按下Enter後,你會看到它產生出來的金鑰,這時就表示你已經產生出一個「私密金鑰」及「公開金鑰」在你的電腦裡了。
通常會放在你的使用者的.ssh資料夾內,又或者直接放在你的使用者資料夾內(.pub的就是公開金鑰)。

ssh key 登入教學 4 ssh key 登入教學 5

將SSH Key傳送到需設置的主機伺服器

我們在”本地端”的那個終端機,輸入以下語法來將公開金鑰傳到你需要裝設的伺服器上。
注意: 如果你的伺服器沒有.ssh的資料夾,請先建立一個,輸入以下語法建立:

mkdir .ssh

有了.ssh資料夾以後輸入以下語法:

scp 剛剛產生的.pub檔案放置的路徑 帳號@IP位置:/路徑/.ssh/傳過去之後想要的名稱.pub

ssh key 登入教學 6

輸入正確以後,它會請你先輸入一次接收方的主機伺服器密碼,然後你會看到傳輸狀態及完成狀態。

ssh key 登入教學 7

當檔案確認已經有傳過去了,也能在該伺服器上.ssh資料夾內被找到,表示已經差不多完成囉!

最後,授權 SSH Key

接著,我們需要授權剛剛傳過來的公開金鑰。
輸入以下語法:

cat ~/.ssh/你的公開金鑰名稱.pub >> ~/.ssh/authorized_keys

ssh key 登入教學 8

然後你就會發現,在.ssh這個資料夾內多了一個authorized_keys的檔案。
這份檔案是用來查看目前有哪些已被授權的金鑰,你可以使用 cat ~/.ssh authorized_keys 來查看裡面授權的金鑰。
最後,你只要再輸入以下語法就大功告成了:

chmod 700 ~/.ssh/
chmod 600 ~/.ssh/*

ssh key 登入教學 9

OK, 你已經完成全部的 SSH Key 從建立生成到傳輸到主機伺服器,並且授權給該金鑰。
嘗試著直接用 ssh 免密碼登入你的主機伺服器看看吧!

相關文章

回到頂端