Linux中國

在 Ubuntu 中配置 SSH 的完整指南

如今 SSH 已成為了登錄遠程伺服器的默認方式。

SSH 的全稱是 「 安全的 Shell Secure Shell 」,它功能強大、效率高,這個主流的網路協議用於在兩個遠程終端之間建立連接。讓我們不要忘記它名稱的「安全」部分,SSH 會加密所有的通信流量,以防止如劫持、竊聽等攻擊,同時提供不同的身份認證方式和無數個配置選項。

在這份新手指南中,你會學到:

  • SSH 的基本概念
  • 設置 SSH 伺服器(在你想要遠程登錄的系統上)
  • 從客戶端(你的電腦)通過 SSH 連接遠程伺服器

SSH 的基本概念

在學習配置過程前,讓我們先了解一下 SSH 的全部基礎概念。

SSH 協議基於 客戶端-伺服器 server-client (CS)架構。「 伺服器 Server 」允許「 客戶端 Client 」通過通信通道進行連接。該信道是經過加密的,信息交換通過 SSH 公私鑰進行管理。

Image credit: SSH

OpenSSH 是在 Linux、BSD 和 Windows 系統上提供 SSH 功能的最流行的開源工具之一。

想要成功配置 SSH,你需要:

  • 在作為伺服器的機器上部署 SSH 伺服器組件,它由 openssh-server 包提供。
  • 在你遠程訪問伺服器的客戶端機器上部署 SSH 客戶端組件,它由 openssh-client 包提供,大多數 Linux 和 BSD 發行版都已經預裝好了。

區分伺服器和客戶端是十分重要的事情。或許你不想要你的 PC 作為 SSH 伺服器,除非你有充分理由希望其他人通過 SSH 連接你的系統。

通常來說,你有一個專用的伺服器系統。例如,一個 運行 Ubuntu 的樹莓派。你可以 啟用樹莓派的 SSH 服務,這樣你可以在你 PC 中的終端中,通過 SSH 控制並管理該設備。

有了這些信息,讓我們看看如何在 Ubuntu 上設置 SSH 伺服器。

在 Ubuntu 伺服器中配置 SSH

設置 SSH 並不複雜,只需要以下幾步。

前提

  • 一個在伺服器端擁有 sudo 許可權的用戶
  • 可以下載所需包的互聯網連接
  • 在你的網路中至少有另一個系統。可以是區域網中的另一台電腦,遠程伺服器或者計算機中託管的虛擬機。

再次強調,在你想要通過 SSH 遠程登錄的系統上安裝 SSH 服務。

第一步:安裝所需包

讓我們從打開終端輸入一些必要命令開始。

注意,在安裝新的包或者軟體前,要 更新你的 Ubuntu 系統,以確保運行的是最新版本的程序。

sudo apt update && sudo apt upgrade

你要運行 SSH 伺服器的包由 OpensSSH 的 openssh-server 組件提供:

sudo apt install openssh-server

第二步:檢查伺服器狀態

當你下載並安裝完包後,SSH 伺服器應該已經運行了,但是為了確保萬無一失我們需要檢查一下:

service ssh status

你還可以使用 systemctl 命令:

sudo systemctl status ssh

你應該會看到這樣的結果,其中 active 是高亮的。輸入 q 退出該頁面。

如果你的結果中 SSH 服務沒有運行,使用這個命令運行它:

sudo systemctl enable --now ssh

第三步:允許 SSH 通過防火牆

Ubuntu 帶有名為 UFW 簡單的防火牆 Uncomplicated Firewall )的防火牆,這是管理網路規則的 iptables 的一個介面。如果啟動了防火牆,它可能會阻止你連接伺服器。

想要配置 UFW 允許你的接入,你需要運行如下命令:

sudo ufw allow ssh

UFW 的運行狀態可以通過運行 sudo ufw status 來檢查。

現在,我們的 SSH 伺服器已經開始運行了,在等待來自客戶端的連接。

連接遠程伺服器

你本地的 Linux 系統已經安裝了 SSH 客戶端。如果沒有,你可以在 Ubuntu 中使用如下命令安裝:

sudo apt install openssh-client

要連接你的 Ubuntu 系統,你需要知道它的 IP 地址,然後使用 ssh 命令,就像這樣:

ssh username@address

用戶名username)改為你的系統上的實際用戶名,並將 地址address)改為你伺服器的 IP 地址。

如果你 不知道 IP 地址,可以在伺服器的終端輸入 ip a 查看結果。應該會看到這樣的結果:

Using 「ip a」 to find the IP address

可以看到我的 IP 地址是 192.168.1.111。讓我們使用 username@address 格式進行連接。

ssh team@192.168.1.111

這是你第一次連接到該 SSH 伺服器,它會請求添加主機。輸入 yes 並回車即可。

First time connecting to the server

SSH 會立即告訴你該主機已經被永久添加了,並要求你輸入指定用戶的密碼,輸入密碼並再次按回車即可。

Host added, now type in the password

瞧,你遠程登錄了你的 Ubuntu 系統!

Connected!

現在,你可以在遠程伺服器的終端里和尋常一樣工作了。

關閉 SSH 連接

你只需要輸入 exit 即可關閉連接,它會立馬關閉不需要確認。

Closing the connection with 「exit」

在 Ubuntu 中關閉並禁止 SSH

如果你想要停止 SSH 服務,需要運行該命令:

sudo systemctl stop ssh

該命令會關閉 SSH 服務,直到重啟它或者系統重啟。想要重啟它,輸入:

sudo systemctl start ssh

現在,如果你想要禁止 SSH 跟隨系統啟動,使用該命令:

sudo systemctl disable ssh

該命令不會停止當前的 SSH 會話,只會在啟動的時候生效。如果你想要它跟隨系統啟動,輸入:

sudo systemctl enable ssh

其他 SSH 客戶端

從 Linux 到 macOS,大多數 *nix 系統中都有 ssh 工具,但這並不是唯一的選項,這裡有幾個可以在其他操作系統中使用的客戶端:

  • PuTTY 是一個自由開源的 Windows 系統上的 SSH 客戶端。它功能強大並且簡單易用。如果你從 Windows 系統上連接你的 Ubuntu 伺服器,PuTTY 是最好的選擇。(LCTT 譯註:切記從官方網站下載。)
  • 對安卓用戶來說,JuiceSSH 是十分優秀的工具。如果你在旅途中需要一個移動客戶端來連接你的 Ubuntu 系統,我強烈建議你試試 JuiceSSH。它已經出現了將近 10 年,並且可以免費使用。
  • 最後是 Termius,它可用於 Linux、Windows、macOS、iOS 和安卓。它有一個免費版本和幾個付費選項。如果你運行大量伺服器並進行共享連接的團隊合作,那麼 Termius 對你來說是一個不錯的選擇。

總結

在這份指導中,你可以在 Ubuntu 系統中設置 SSH 作為伺服器,允許來自你電腦的遠程安全的連接,便於你通過命令行開展工作。

此,我推薦以下文章:

遠程工作快樂!

via: https://itsfoss.com/set-up-ssh-ubuntu/

作者:Chris Patrick Carias Stas 選題:lujun9972 譯者:Donkey-Hao 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國