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中國

    Linux中國

    捐贈 Let's Encrypt,共建安全的互聯網

    隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...