介紹
當您首次創建一個新的Ubuntu 20.04伺服器時,您應該執行一些重要的配置步驟作為初始設置的一部分。這些步驟將提高您的伺服器安全性和可用性,並為後續操作奠定堅實的基礎。
在您創建一個DigitalOcean Droplet時,您可以選擇將Ubuntu版本添加到您的新Droplet中。使用我們的即用解決方案簡化您的設置。
步驟1 — 以root身份登錄
要登錄到您的伺服器,您需要知道您的伺服器的公共IP地址。您還需要密碼,或者——如果您已經為身份驗證安裝了SSH金鑰——則需要root用戶帳戶的私鑰。如果您還沒有登錄到您的伺服器,您可能想參考我們關於如何使用SSH連接到Droplets的指南,該指南詳細介紹了此過程。
如果您尚未連接到您的伺服器,請立即使用以下命令以 root 用戶身份登錄(將命令中的突出部分替換為您伺服器的公共 IP 地址):
如果出現有關主機驗證的警告,請接受。如果您使用密碼驗證,請提供您的 root 密碼以登錄。如果您使用的是受密碼保護的 SSH 金鑰,您可能會被提示在每個會話中首次使用該金鑰時輸入密碼。如果這是您首次使用密碼登錄到伺服器,您可能還會被提示更改 root 密碼。
關於 root
root 用戶是 Linux 環境中的管理用戶,擁有非常廣泛的權限。由於 root 帳戶的特權增強,我們建議您不要定期使用它。這是因為 root 帳戶甚至可能在意外情況下進行非常具有破壞性的更改。
下一步是為日常使用設置一個具有降低權限的新用戶帳戶。稍後,我們將向您展示如何在需要時臨時獲得增加的權限。
步驟 2 — 創建新用戶
一旦您以 root 身份登录,您就能够添加新用户帐户。在未来,我们将使用这个新帐户登录,而不是 root。
此示例创建了一个名为 sammy 的新用户,但您应该用您喜欢的用户名替换它:
您将被询问一些问题,首先是帐户密码。
输入一个强密码,可选地,填写任何您想要的额外信息。这不是必需的,您可以在任何您想跳过的字段中只按 ENTER
。
第 3 步 —— 授予管理权限
现在我们有了一个具有常规帐户权限的新用户帐户。然而,我们有时可能需要执行管理任务。
为了避免不得不注销正常用户并以 root 帐户重新登录,我们可以设置所谓的超级用户或 root 权限给我们的常规帐户。这将允许我们的常规用户在命令之前加上单词 sudo
以使用管理权限运行命令。
为了将这些权限添加到我们的新用户,我们需要将用户添加到 sudo 组中。默认情况下,在 Ubuntu 20.04 上,属于 sudo 组的用户可以使用 sudo
命令。
作為root,執行以下命令將您的新使用者添加到sudo群組(將突顯顯示的使用者名稱替換為您的新使用者):
現在,當以常規使用者身份登錄時,您可以在命令前輸入sudo
以使用超級使用者權限運行它們。
步驟4 — 設置基本防火牆
Ubuntu 20.04伺服器可以使用UFW防火牆來確保僅允許對某些服務的連接。我們可以使用這個應用程序設置一個基本的防火牆。
注意:如果您的伺服器運行在DigitalOcean上,您可以選擇使用DigitalOcean Cloud Firewalls而不是UFW防火牆。我們建議一次只使用一個防火牆,以避免可能難以調試的衝突規則。
應用程序可以在安裝時向UFW註冊其配置文件。這些配置文件允許UFW通過名稱來管理這些應用程序。用於允許我們現在連接到伺服器的服務OpenSSH已在UFW中註冊了配置文件。
您可以通過輸入以下命令查看這一點:
OutputAvailable applications:
OpenSSH
我們需要確保防火牆允許SSH連接,以便下次我們可以登錄。我們可以通過輸入以下命令允許這些連接:
之後,我們可以輸入以下命令啟用防火牆:
輸入y
並按ENTER
以繼續。您可以看到仍然允許SSH連接,方法是輸入:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
由於防火牆目前阻止除SSH之外的所有連接,因此如果您安裝並配置其他服務,則需要調整防火牆設置以允許流量進入。您可以在我們的UFW基本操作指南中學習一些常見的UFW操作。
步驟5 — 為您的常規用戶啟用外部訪問
現在我們有了一個供日常使用的常規用戶,我們需要確保我們可以直接SSH到該帳戶。
注意:在驗證您可以使用新用戶登錄並使用sudo
之前,我們建議保持以root身份登錄。這樣,如果出現問題,您可以作為root進行故障排除並進行任何必要的更改。如果您使用的是DigitalOcean Droplet並且在rootSSH連接方面遇到問題,您可以使用恢復控制台重新獲取對Droplets的訪問權限。
配置新用戶的SSH訪問的過程取決於您的服務器的root帳戶是使用密碼還是SSH密鑰進行身份驗證。
如果根帳戶使用密碼驗證
如果您使用密碼登錄到您的根帳戶,那麼 SSH 將啟用密碼驗證。您可以通過打開新的終端會話並使用您的新用戶名以 SSH 連接到您的新用戶帳戶:
輸入您常規用戶的密碼後,您將被登錄。請記住,如果您需要以管理員權限運行命令,請像這樣在其前面輸入sudo
:
在每個會話中第一次使用 sudo
時(以及之後定期使用),您將被提示輸入您的常規用戶密碼。
為了增強您服務器的安全性,我們強烈建議設置 SSH 密鑰,而不是使用密碼驗證。請遵循我們的指南 在 Ubuntu 20.04 上設置 SSH 密鑰 以了解如何配置基於密鑰的驗證。
如果根帳戶使用 SSH 密鑰驗證
如果您使用 SSH 金鑰登錄到您的 root 帳戶,那麼 SSH 將禁用密碼身份驗證。您需要將本地公鑰的副本添加到新用戶的 ~/.ssh/authorized_keys 檔案中以成功登錄。
由於您的公鑰已經在伺服器上的 root 帳戶的 ~/.ssh/authorized_keys 檔案中,我們可以將該檔案和目錄結構複製到現有會話中的新用戶帳戶。
使用 rsync 命令最簡單的方法是複製文件並保持正確的所有權和權限。這將通過一個命令複製 root 用戶的 .ssh 目錄,保留權限並修改文件所有者。請確保更改下面命令中的突出顯示部分,以匹配您的常規用戶名:
注意:rsync 命令會不同地處理以斜杠結尾和不以斜杠結尾的源和目的地。在使用 rsync 以下命令時,請確保源目錄(~/.ssh)不包含尾隨斜杠(請檢查您是否使用 ~/.ssh/)。
如果您不小心將尾隨斜杠添加到命令中,rsync 將 root 帳戶的 .ssh 目錄的內容複製到 sudo 用戶的主目錄,而不是複製整個 .ssh 目錄結構。文件將位於錯誤位置,SSH 將無法找到並使用它們。
現在,在本地機器上打開一個新的終端會話,並使用SSH連接到您的新用戶名:
您應該可以使用新的用戶帳戶登錄,而無需使用密碼。請記住,如果您需要以管理員權限運行命令,請在命令前加上sudo
,就像這樣:
在每個會話中第一次(以及之後定期)使用sudo
時,您將被要求輸入常規用戶密碼。
接下來該怎麼做?
到目前為止,您的服務器已經建立了一個穩固的基礎。您現在可以在您的服務器上安裝任何您需要的軟件。
Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04