如何在Ubuntu上啟用SSH?
介紹
安全外殼協議 (SSH) 是一種加密網路協議,允許透過不安全的網路安全地遠端訪問計算機或伺服器。它在兩個裝置之間提供安全加密的通道,可用於各種用途,例如遠端執行命令或安全地在裝置之間傳輸檔案。
SSH 的設計目的是取代 Telnet、FTP 和 Rlogin,這些協議傳輸純文字資料,因此很容易被攻擊者攔截。對於需要安全訪問遠端伺服器的系統管理員、開發者和使用者來說,SSH 是一個必不可少的工具。
檢查Ubuntu上是否安裝了SSH
SSH 是一種常用的安全遠端訪問伺服器的協議,對於系統管理員來說是一個必不可少的工具。在 Ubuntu 上啟用 SSH 之前,您需要檢查它是否已安裝。
您可以透過在終端中執行一個簡單的命令來輕鬆檢查您的系統上是否安裝了 OpenSSH 伺服器軟體包:
sudo apt-get update sudo apt-get install openssh-server
此命令將首先更新軟體包列表,然後如果尚未安裝 OpenSSH 伺服器,則安裝它。
使用命令列檢查SSH安裝
如果您想驗證是否安裝了 SSH,可以在終端中使用一個簡單的命令:
ssh -V
此命令將顯示當前安裝在系統上的 OpenSSH 客戶端的版本。如果您看到類似“command not found”(命令未找到)或“package could not be found”(找不到軟體包)的訊息,則表示您的 Ubuntu 系統上當前未安裝 SSH。
如果尚未安裝,則安裝SSH
如果您確定您的 Ubuntu 機器上尚不可用 OpenSSH 伺服器,則可以使用終端中的幾個簡單命令來安裝它:
sudo apt-get update sudo apt-get install openssh-server
第一個命令將確保您的所有系統儲存庫都是最新的;此步驟可能需要幾分鐘,具體取決於您的軟體包列表有多舊。
第二行將 OpenSSH 伺服器安裝到您的機器上。此過程成功完成後,您應該已透過 SSH 在 Ubuntu 上啟用了安全的遠端訪問!
編輯sshd_config檔案以允許遠端訪問
為了在 Ubuntu 上啟用 SSH,您需要編輯位於 /etc/ssh/sshd_config 的 sshd_config 檔案。這可以透過開啟終端並輸入命令“sudo nano /etc/ssh/sshd_config”來完成。開啟 sshd_config 後,找到顯示“PermitRootLogin prohibit-password”的行,並將其更改為“PermitRootLogin yes”。
這將允許透過 SSH 進行 root 訪問。如果您想允許其他使用者透過 SSH 遠端訪問您的系統,請將其使用者名稱新增到檔案的“AllowUsers”部分。
重新啟動SSH服務以使更改生效
編輯 sshd_config 檔案後,重要的是重新啟動 SSH 服務,以便此配置檔案(或任何其他類似配置檔案)中所做的任何更改才能生效。要在 Ubuntu 上重新啟動 SSH 服務,請開啟終端並輸入以下命令之一:
sudo systemctl restart ssh
或
sudo service ssh restart
在對“/etc/ssh/sshd_config”進行必要的配置更改後重新啟動系統的 SSH 守護程式或服務,所有這些新設定都將立即應用,並儘快生效。
配置防火牆設定以進行SSH訪問
防火牆充當安全機制,保護您的系統免受未經授權的網路流量的攻擊。預設情況下,Ubuntu 帶有一個名為 UFW(Uncomplicated Firewall)的防火牆,它阻止所有傳入連線,除非其規則明確允許。
檢查Ubuntu上的防火牆狀態
在允許透過防火牆訪問之前,務必確保防火牆實際上正在執行並處於活動狀態。可以使用以下命令來檢查防火牆的狀態:
sudo ufw status
如果 UFW 處於活動狀態並正在執行,您將看到一條訊息指示它已啟用並阻止所有傳入連線,除非特定規則允許。
允許在埠22(SSH的預設埠)上進行傳入流量
要啟用埠 22 上的傳入流量,我們需要在 UFW 配置檔案中為 SSH 新增一個例外規則。可以使用以下命令:
sudo ufw allow ssh
這將允許來自任何 IP 地址或網路的埠 22 上的傳入流量。
如果您只想允許來自特定 IP 地址或網路的訪問,則可以在規則中指定它們,如下所示:
sudo ufw allow from to any port ssh
這僅允許來自指定的 IP 地址或網路子網的傳入 SSH 連線。新增這些規則後,建議您重新啟動防火牆以確保更改生效:
sudo ufw disable && sudo ufw enable
此命令停用然後立即啟用 UFW,以便應用新設定。
建立SSH金鑰對以進行安全訪問
使用ssh-keygen生成公鑰-私鑰對
在設定 SSH 訪問之前,務必生成一個安全的金鑰對用於身份驗證。金鑰對包含一個私鑰(將儲存在您計算機的本地),以及一個公鑰(將上傳到伺服器)。
私鑰應保密,切勿與任何人共享。要生成金鑰對,請在 Ubuntu 上開啟終端並輸入以下命令:
ssh-keygen
然後系統會提示您輸入私鑰的密碼。
這透過要求某人除了正確的密碼之外還需要對您的計算機進行物理訪問才能獲得訪問許可權,從而增加了額外的安全層。輸入密碼(或如果您願意,留空)後,按 Enter 鍵繼續使用預設檔案位置和名稱。
將生成一個新的公鑰-私鑰對,並儲存在您的主目錄下的 `.ssh/` 中。私鑰將儲存為 `id_rsa`,而公鑰將儲存為 `id_rsa.pub`。
將公鑰複製到伺服器
生成 SSH 金鑰後,需要將公鑰從本地機器複製到 Ubuntu 伺服器,以便它可以驗證傳入的連線。為此,請使用 ssh-copy-id
ssh-copy-id username@server_ip_address
將 `username` 替換為遠端伺服器上的使用者名稱,將 `server_ip_address` 替換為其 IP 地址或主機名。
然後您將看到類似於此的輸出:
Output /usr/bin/ssh-copy-id: INFO: attempting to log in with user: 'username' /usr/bin/ssh-copy-id: INFO: copying ID file '/home/localuser/.ssh/id_rsa.pub' to remote host '192.0.2.142' /usr/bin/ssh-copy-id: INFO: attempting to log in with user: 'username' /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys username@192.0.2.142's password: Number of key(s) added: 1 Now try logging into the machine, with:`ssh 'username@192.0.2.142'` and check to make sure that only the key(s) you wanted were added.
出現提示時輸入遠端使用者帳戶密碼並按 Enter 鍵。您的公鑰現在將新增到遠端伺服器的 `authorized_keys` 檔案中,允許您安全地使用 SSH 連線,而無需每次都輸入密碼。
結論
按照本指南中概述的步驟操作後,您現在應該已在 Ubuntu 機器上啟用並配置了 SSH。透過 SSH 進行遠端訪問是一個強大的工具,可以極大地提高生產力和易用性。但是,務必確保已實施適當的安全措施,以防止未經授權訪問您的系統。