介紹
當您首次創建新的Ubuntu 22.04服務器時,應該執行一些重要的配置步驟作為初始設置的一部分。這些步驟將增加您的服務器的安全性和可用性,並為後續操作打下堅實的基礎。
使用DigitalOcean應用平台從GitHub部署您的應用程序。讓DigitalOcean專注於擴展您的應用程序。
步驟1 — 以root身份登錄
要登錄到您的服務器,您需要知道您的服務器的公共IP地址。如果您安裝了用於身份驗證的SSH密鑰,您還需要知道root用戶帳戶的密碼或私鑰。如果您還沒有登錄到您的服務器,您可能想查看我們的指南,該指南詳細介紹了如何使用SSH連接到Droplets的過程。
如果您當前未連接到您的服務器,請使用以下命令以root用戶身份登錄。將命令中突出顯示的your_server_ip
部分替換為您的服務器的公共IP地址:
如果出現有關主機真實性的警告,請接受它。如果您的伺服器使用密碼驗證,請提供您的root密碼以登錄。如果您使用的是有密碼保護的SSH金鑰,您可能需要在每個會話中第一次使用金鑰時輸入密碼。如果這是您首次使用密碼登錄伺服器,您可能還需要更改root密碼。根據提示更改密碼。
關於 root
root用戶是Linux環境中具有提升權限的管理用戶。由於root帳戶的特權,建議您不要定期使用它。root帳戶甚至可能因為意外而進行非常破壞性的更改。
下一步是設置一個新的帳戶,具有日常使用所需的降低特權。稍後,我們將向您展示如何在需要時暫時獲得增加的特權。
步驟2 — 建立新用戶
一旦以root身份登錄,您將能夠添加新的用戶帳戶。將來,我們將使用這個新帳戶登錄,而不是使用root。
這個範例創建了一個名為sammy的新用戶,但你可以用你喜歡的用戶名替換它:
您將被問及一些問題,首先是帳戶密碼。
請輸入一個強密碼,並選擇性地填寫任何額外信息。這些信息不是必需的,您可以在想要跳過的任何字段中按 ENTER
。
第3步 — 授予管理權限
現在您有一個具有常規帳戶特權的新用戶帳戶。但是,有時您需要以root用戶的身份執行管理任務。
為了避免退出您的常規用戶並以root帳戶重新登錄,您可以設置所謂的超級用戶或root權限以供您的用戶常規帳戶使用。這些特權將允許您的普通用戶在命令前加上sudo
詞來以管理員特權運行命令。
要將這些權限添加到您的新用戶,您需要將用戶添加到sudo系統組中。在Ubuntu 22.04上,默認情況下,屬於sudo組的用戶被允許使用sudo
命令。
作為 root,執行以下命令將您的新用戶添加到 sudo 群組(將突出顯示的 sammy
用戶名替換為您的新用戶):
現在您可以在常規用戶登錄時在命令前輸入 sudo
以以超級用戶權限運行它們。
步驟 4 — 設置防火牆
Ubuntu 22.04 伺服器可以使用 UFW 防火牆來確保僅允許對某些服務的連接。您可以使用此應用程序設置基本防火牆。
注意: 如果您的伺服器在 DigitalOcean 上運行,您可以選擇使用 DigitalOcean Cloud Firewalls 而不是 UFW 防火牆。我們建議一次只使用一個防火牆,以避免可能難以調試的衝突規則。
應用程序可以在安裝時向 UFW 註冊其配置文件。這些配置文件允許 UFW 通過名稱管理這些應用程序。OpenSSH,允許您連接到伺服器的服務,已在 UFW 中註冊了一個配置文件。
您可以通過輸入以下命令檢查已安裝的 UFW 配置文件列表:
OutputAvailable applications:
OpenSSH
您需要確保防火牆允許 SSH 連接,以便下次您可以登錄到伺服器。通過輸入以下命令允許這些連接:
現在啟用防火牆,請輸入:
輸入 y
並按 ENTER
以繼續。您可以通過輸入:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
防火牆目前阻止除了 SSH 之外的所有連接來查看。如果安裝並配置了其他服務,您將需要調整防火牆設置以允許新的流量進入您的服務器。您可以在我們的 UFW 基本操作指南中學習一些常見的 UFW 操作。
步驟 5 — 啟用常規用戶的外部訪問
現在您有了用於日常使用的常規用戶,您需要確保可以直接通過 SSH 登錄該帳戶。
注意:在驗證您可以使用新用戶登錄並使用 sudo
之前,我們建議保持作為 root 登錄。如果出現連接問題,您可以作為 root 進行故障排除並進行任何必要的更改。如果您使用的是 DigitalOcean Droplet 並且遇到 root SSH 連接問題,您可以使用 恢復控制台恢復對 Droplets 的訪問權限。
為您的新用戶配置 SSH 訪問取決於您的服務器的 root 帳戶是使用密碼還是 SSH 金鑰進行身份驗證。
如果根帳戶使用密碼驗證
如果您使用密碼登錄到您的 root 帳戶,那麼SSH將使用密碼驗證。您可以通過開啟新的終端會話,並使用您的新用戶名使用SSH 登錄到您的新用戶帳戶:
輸入您常規用戶的密碼後,您將被登錄。請記住,如果您需要以管理員權限運行命令,請在命令之前輸入 sudo
,像這樣:
在每個會話的第一次使用sudo
時(以及之後定期),您將收到要求輸入常規用戶密碼的提示。
為了增強您服務器的安全性,我們強烈建議設置SSH密鑰,而不是使用密碼驗證。請參考我們的指南,了解如何在Ubuntu 22.04上設置SSH密鑰以配置基於密鑰的驗證。
如果根帳戶使用SSH密鑰驗證
如果您使用SSH密钥登录到您的root帐户,那么SSH的密码验证将被禁用。要使用SSH密钥登录为常规用户,您必须将本地公钥的副本添加到新用户的~/.ssh/authorized_keys
文件中。
由于您的公钥已经在服务器上root帐户的~/.ssh/authorized_keys
文件中,您可以使用当前会话将该文件和目录结构复制到您的新用户帐户中。
使用rsync
命令以正确的所有权和权限复制文件是最简单的方法。此命令将复制root用户的.ssh
目录,保留权限,并修改文件所有者,所有操作在单个命令中完成。确保更改以下命令中的突出显示部分以匹配您的常规用户名:
注意:rsync
命令处理以斜杠结尾和不以斜杠结尾的源和目标的方式不同。在下面使用rsync
时,请确保源目录(~/.ssh
)不包含尾随斜杠(检查以确保您未使用~/.ssh/
)。
如果您意外地向命令添加了尾随斜杠,rsync
将会将root帐户的~/.ssh
目录的内容复制到sudo
用户的主目录,而不是复制整个~/.ssh
目录结构。文件将位于错误的位置,SSH将无法找到并使用它们。
現在,在本地機器上打開一個新的終端會話,並使用您的新用戶名使用SSH:
您應該可以使用新的用戶帳戶連接到您的服務器,而無需使用密碼。請記住,如果您需要以管理員權限運行命令,請在命令之前輸入sudo
,就像這樣:
在每個會話中的第一次使用sudo
時(以及以後定期使用時),您將被要求輸入常規用戶的密碼。
接下來該怎麼辦?
到目前為止,您的服務器已經建立了穩固的基礎。您現在可以在您的服務器上安裝任何所需的軟件。
如果您想更熟悉Linux命令,您可以查看我們的Linux命令行入門。
Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-22-04