返回部落格

如何在 Ubuntu 中使用 SSH 連接到遠端伺服器

如何在 Ubuntu 中使用 SSH 連接到遠端伺服器

什麼是 SSH?

SSH 代表安全外殼協定(Secure Shell)。透過 SSH,您可以安全地存取遠端主機,因為連線是加密的。使用 Linux 終端機的 ssh 指令,我們可以連線到遠端 Linux 伺服器,並像在自己的電腦上一樣工作。在本教學結束時,您將完全了解如何使用 SSH 連線到遠端的 Ubuntu.

語法

語法是您使用 ssh 指令的規則。您可以重新排列語法,但必須遵循直接的格式。以下是使用 ssh 指令的語法範例:

您要連線的網域名稱或 IP 位址就是如上述指令中所示的 remote_host。此語法假設您在遠端系統和本機系統上的使用者名稱相同。然而,如果使用者名稱不同,您可以使用此指令來表示:

在連線到伺服器時,您需要立即提供密碼以驗證您的身分。輸入指令 exit 即可返回您的本機工作階段。

如何設定 SSH

Ubuntu 中主要的 sshd 設定檔位於 /etc/ssh/sshd_config。如果您變更了 SSH 設定,SSHD 伺服器設定將會自動變更。在進行任何設定之前,請確保使用此指令備份該檔案的目前版本:

使用文字編輯器開啟它:

您應該保留此檔案中的大部分參數。然而,有幾件事您需要注意:

連接埠宣告指示了 SSHD 伺服器等待連線的連接埠。預設值為 22。除非有特定原因,否則您不需要變更此設定:

主機金鑰宣告指示了全域主機金鑰的位置:

這兩個項目指示了應記錄的日誌層級。如果您在使用 SSH 時遇到問題,增加日誌數量是找出問題的絕佳方法:

這些選項定義了登入的一些資訊,以在設定檔不安全時防止未授權的登入:

這些參數設定被稱為 X11 轉發功能。透過這種方式,您可以在本機系統上顯示遠端系統的 GUI。您必須在伺服器上啟用此選項,同時在連線到 SSH 用戶端時使用 -X 選項。

進行變更後,儲存檔案並按下 CTRL-X 和 Y,然後按下 Enter 關閉它。如果您變更了 /etc/ssh/sshd_config 中的設定,您必須重新啟動 sshd 伺服器以執行變更:

對於 systemd 系統(例如 Ubuntu 16.04 或 Debian Jessie),請使用此指令:

徹底測試您的變更,以確保一切運作正常。如果您進行了任何變更,您可能應該保持某些工作階段處於作用中狀態。透過這種方式,您可以在必要時還原設定。

如何使用金鑰登入 SSH?使用密碼登入遠端系統是不錯的方法。然而,最好是設定基於金鑰的驗證。

什麼是基於金鑰的驗證?

金鑰型驗證會建立兩對金鑰,稱為私鑰和公鑰。私鑰位於使用者的電腦上,並已受到保護且保持機密。公鑰可以提供給任何人,或儲存在您想要存取的任何伺服器上。如果您嘗試使用金鑰對進行連線,伺服器會使用公鑰為使用者電腦產生一條訊息。使用者只能使用私鑰來讀取該訊息。接著,使用者電腦會向伺服器傳送回覆,伺服器便得知該使用者是真實的。設定好金鑰後,整個程序會自動在背景完成。

如何建立 SSH 金鑰

SSH 金鑰應該在您希望用來登入的電腦上產生。這通常是您的本機電腦。請在命令列中輸入以下內容:

然後,按下 ENTER 鍵以接受預設值。它將在 ~/.ssh/id_rsa.pub 和 ~/.ssh/id_rsa 產生您的金鑰。接下來,輸入以下命令以切換到 .ssh 目錄:

這些是檔案權限:

list files in .ssh folder

如您所見,只有擁有者可以讀取和寫入 id_rsa 檔案。因此,您必須妥善保管它。不過,您可以分享 id_rsa.pub 檔案,並為此操作設定適當的權限。下一步是使用以下語法將公鑰傳輸到伺服器:

這會啟動一個 SSH 工作階段,您必須使用密碼進行驗證。輸入密碼後,您的公鑰將被複製到伺服器’的授權金鑰檔案中,以便您下次無需密碼即可登入。

如何停用密碼驗證

如果已產生 SSH 金鑰,您可以透過停用僅限密碼驗證來提高伺服器的安全性。您可以使用私鑰(且伺服器上已安裝公鑰)登入伺服器,而無需使用主控台。

注意:在進行此步驟之前,請確保您已在伺服器上安裝公鑰。否則您將被拒之門外!

使用此命令開啟 sshd 設定檔:

藉由刪除開頭的 #,找到並取消註釋寫有密碼驗證檢查(PasswordAuthentication)的那一行。然後您可以將值變更為 “no”:

PubkeyAuthentication 和 ChallengeResponseAuthentication 為預設設定,看起來應該像這樣:

您不應該變更這兩項設定。之後,在進行變更後儲存並關閉檔案。接下來,使用以下命令重新啟動 SSH 守護行程:

最後,您已停用密碼驗證,現在只能使用 SSH 金鑰驗證來存取您的伺服器。

結論

在本教學中,我們向您展示了如何在 Ubuntu 中使用 SSH 安全地連線到遠端伺服器。如果您是系統管理員,學習如何使用 SSH 是非常基礎且重要的,因此在掌握本教學後,您可以繼續學習 SSH 的更多進階功能。

祝您使用愉快!

 

author

Akshay Nagpal

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的創意設計師,專注於透過傳統與創新行銷渠道建立一致的企業形象。他擅長將藝術願景與策略行銷相融合,創造具有影響力的品牌敘事。

留言

目前尚無留言。成為第一個留言的人吧。