[ 電腦小知識 ] 透過 SSH 遠端連線隨時管理家中電腦文件 — 超詳盡步驟示範

Adrian Wang
14 min readFeb 27, 2021

--

其實我一直以來也只有把 SSH 用在 Git 遠端倉庫中,但今天嘗試使用老媽的筆電遠端連線至自己的桌電之後發覺真的非常方便,所以決定也把這個好用的功能分享給大家 😍

往後就算在公司或旅遊途中,只要有需要,隨時都可以透過 SSH 遠端連線至家裡電腦查找資料、管理文件等。

💡 有基礎的終端機和網路知識會比較好理解此篇文章。
  但就算不具備相關知識,照著做也是可以完成設定的,比較深入的部分會逐步解釋。
🎈 預告一下,遠端登入電腦後需透過終端命令行操作,會有解釋別擔心。
  1. SSH 簡介 — SSH 是什麼?
  2. OpenSSH 功能 — Server & Client
  3. 安裝 OpenSSH 伺服器 — 安裝並設定開機時自動啟用
  4. 為什麼要設定路由器? — Router 與 IP 概述
  5. 設定路由器 — 預留 IP 並轉發通訊埠
  6. OpenSSH 用戶端遠端連線 — 遠端連線管理資料超方便

SSH 簡介 — SSH 是什麼?

OK,開頭不免俗的要介紹一下 SSH,因為我相信一般使用者應該不會知道什麼是 SSH,而且就算不知道也使用電腦使用得很快樂。

以下轉至維基百科,沒耐心看請直接跳過此段看下方條列的重點。

SSH ( Secure Shell ) 是一種加密的網路傳輸協定,可在不安全的網路中為網路服務提供安全的傳輸環境。通過在網路中建立安全隧道來實現 SSH 客戶端與伺服器之間的連接。SSH 最常見的用途是遠端登錄系統,人們通常利用 SSH 來傳輸命令行介面和遠端執行命令。
SSH使用頻率最高的場合是類 Unix 系統,但是 Windows 作業系統也能有限度地使用 SSH。2015年,微軟宣布將在未來的作業系統中提供原生 SSH 協定支援,Windows 10 1803 版本已提供 OpenSSH 工具。

幫大家劃一下重點:
1. SSH 是一種加密的網路傳輸協定
2. SSH 最常見的用途是遠端登錄系統
3. Windows 10 1803 版本已提供 OpenSSH 工具(原生 SSH 協定支援)

OpenSSH 功能 — Server & Client

Windows 電腦有提供名為 OpenSSH 的工具,OpenSSH 工具分為 2 種,一種是伺服器端,另一種則是用戶端。

從上圖我們可以很清楚的知道,安裝 OpenSSH 伺服器端的電腦可以供安裝 OpenSSH 用戶端的電腦進行遠端連線。
只要你的電腦不是太舊的機型,基本上現在的 Windows 系統都已經預裝了 OpenSSH 用戶端。所以對於要操作遠端連線的電腦,我們不需要做額外的安裝和設定。

至於 OpenSSH 伺服器,畢竟不是一般使用者會接觸到的領域,所以我們需要另外手動安裝好。

安裝 OpenSSH 伺服器

首先我們先針對 “ 開放給其它裝置連線的電腦 ” 安裝 OpenSSH 伺服器功能。

1. 搜尋 Apps & features ( 應用程式與功能 )

我的系統語言是英文,如果你的是中文,叫做「應用程式與功能」,當然你打英文也可以搜尋得到。

2. 點選 Optional features ( 管理選用功能 )

3. 確認是否已安裝 OpenSSH Server

在安裝之前,我們可以先搜尋清單,看看是不是已安裝過 OpenSSH 伺服器?由上圖可以看到,已安裝的功能只有「OpenSSH 用戶端」。

這裡稍微講解一下,只要我們有這個「OpenSSH 用戶端」,我們就可以在命令提示字元 ( CMD ) 中使用 ssh 命令,你可以在路徑 C:\Windows\System32\OpenSSH 中看到相關的程式內容。

回歸正題,如果你跟我一樣只有「OpenSSH 用戶端」的話,請接著點擊上方的「新增功能」按鈕。

4. 安裝 OpenSSH Server

在清單列搜尋 SSH,可以看到清單中有一個「OpenSSH 伺服器」可供安裝,這就是我們要的,勾選項目之後點擊下方按鈕進行安裝。

5. 設定開機時自動執行 OpenSSH Server

接下來我們在搜尋列搜尋 PowerShell,選擇「以系統管理員身分執行」的方式開啟。

這邊要提醒一下大家,如果你的 PowerShell 是以一般使用者身分開啟,會像是上方的視窗。如果是以系統管理員身分開啟,會像是下方的視窗。
可以看到視窗標題和路徑名稱略有不同,如果你是以一般使用者身分開啟,請關閉並重新以系統管理員身分執行該程式

接著我們依序輸入以下兩行命令,直接複製灰底的命令列,並貼上至你的 PowerShell,然後按下 Enter 後再複製下一行,再按 Enter。
1. Start-Service sshd — 開啟 OpenSSH 伺服器
2. Set-Service -Name sshd -StartupType 'Automatic' — 設定開機時自動啟動 OpenSSH 伺服器

如果輸入完了發現什麼變化都沒有,PowerShell 視窗上也沒有出現一堆像是早期電腦當機時會出現的字,那很好!代表你已經成功完成設定了!

為什麼要設定 Router 路由器?

前面我們說過 SSH 是透過在網路中建立安全隧道 ( Secure Channel ) 來實現客戶端與伺服器之間的連線,也就是說當我們連線到設定好 OpenSSH 伺服器端的電腦時,需要透過 IP 位址來確認它就是我要找的電腦。

IP 就像是房子的門牌,伺服器端是房子的主人,而用戶端則是客人。

當我們想拜訪親朋好友,就要找到確切的門牌,我們總不能亂進別人家門吧。反之,我們的伺服器端也不能亂給陌生人進門。所以今天連到陌生的 IP 位址時我們是沒有權限訪問的。

現今大家幾乎都是使用浮動 IP,透過 Router 自動分配給每一台連線的裝置,也就是說每次我連網路的時候,我的門牌號都會變來變去的,那我們的客人就會找不到我所在的實際位址。

所以我們才要設定路由器,但什麼是路由器?
白話文就是你們家用來發射 Wifi 的那台機器!

有些人跟電信業者申請的數據機本身就能發射 Wifi,那你要設定的就是那台數據機。
有些人家裡的數據機是不能發射 Wifi 的,需要透過 Wifi 分享器去發射,那麼你要設定的就是那台 Wifi 分享器。

放心~這裡說的設定路由器並不是要你拆機當工匠,而是進入路由器的後台頁面進行設定。
還是不懂?白話文就是滑鼠點一點和鍵盤按一按。

設定 Router 路由器

首先我們先來確認一下目前的 IP 位址。

1. 確認是否為浮動 IP

搜尋 cmd 之後開啟 Command Prompt ( 命令提示字元 )。
接著輸入 ipconfig 按後下 Enter,該程式會輸出關於網路連線的資訊。

我們的視窗長得不一樣沒關係,這只是我習慣使用的終端程式,並不影響接下來的步驟。

如果你連的是有線網路,也就是插網路線在主機上的那種,那麼你的 IP 會顯示在上方「乙太網路」的區塊內。
如果你連的是 Wifi,那麼你的 IP 會顯示在「區域連線」的區塊內。

其中 IPv4 Address 的部分就是你的 IP。
圖片是我的 IP 位址不是你的,你的會跟我不一樣。

只要你的 IP 位址如上圖中的開頭為 192.168.X.X,那就是浮動 IP
你每次連線時,最後一位數 ( X.X.X.68 ) 都可能會變動。

好啦,我相信 99.9% 的人都是浮動 IP,所以我們接著往下設定吧!

2. 進入路由器的設定頁面

一般我們如果想進入路由器的設定頁面,可以打開網頁瀏覽器,在網址欄位直接輸入路由預設閘道的位址。

例如我家有 2 台 Router,預設閘道分別是 192.168.0.1192.168.1.1,而我的 Windows 桌電通常都是連有線網路,所以我要輸入的網址是上方「乙太網路」區塊的預設閘道 192.168.0.1

進入頁面之後你會需要輸入帳號密碼,如果你不知道帳號密碼的話,可以打電話詢問申裝網路的電信業者。

3. 紀錄真實 IP 位址

進入 Router 設定頁面之後,我們需要紀錄一下真實的 IP 位址。
先記下來就好,待會從 OpenSSH 用戶端連線的時候才會用到。

這個 IP 位址很重要,因為是你真實的地址,不要公開給其它人喔!

※小提醒
每間路由器廠商對 IP Address 的翻譯名稱可能略有不同,但都大同小異,例如 WAN 位址、IP 位址、IP 地址 blablabla,反正你看到由 4 個數字組成並用 . 區隔開來的就是了。再不然你也可以通過第三方網站查詢。

4. 紀錄電腦的 MAC 位址

接著我們進入「DHCP 伺服器」頁面進行管理。
同樣的,各家廠商對此的命名方式可能略有不同,可能是 DHCP 伺服器或DHCP 服務器之類的,總歸是離不開 DHCP 四個英文字,稍微找一下會有的。

從這個頁面我們可以看到目前正在連線的所有裝置,往右看到 IP 位址的部分開頭都是 192.168.0.X,只有最後一位數字不同。
這些數字全是透過路由去自動配發給不同裝置的一個虛擬 IP。它不管你被配發到什麼數字,只管你有沒有被配到數字。

也就是說,假設今天名為 iPad 的裝置把網路切斷了,192.168.0.11 這組 IP 的位置就空出來了,這時候如果有其它裝置進行連線,便可能被配到這一組 IP。
之後我們再將 iPad 連網時,因為 192.168.0.11 這組 IP 已經被其他裝置占用,那麼這一次 iPad 被分配到的數字就不會是 11 了。

如此便會造成前面所說的「每次我連網時,我的門牌號都變來變去的,客人就會找不到我的實際位址。」,理所當然的我們就無法用其它電腦訪問到此台電腦。

為避免這種情況,我們需要為裝有 OpenSSH 伺服器的電腦保留一組固定的 IP,確保每一次連線時 IP 是固定的,不會被其它的連線裝置給佔用。

首先我們要先記錄自己裝置的 MAC 位址,從你的裝置名稱中找出相應的 MAC 位址複製並記錄下來,等一下我們需要透過 MAC 位址來將其添加到保留 IP 的欄位。

5. 保留 IP 位址

路由主要是透過 MAC 位址來辨識裝置,所以只要 MAC 位址正確就行,主機名稱隨意填沒關係,你自己認得是哪台電腦就好,甚至有些路由根本沒有主機名稱的填寫欄位。

IP 位址填寫一個 2 ~ 254 範圍內的數字,不知道填寫多少的話建議填寫 101 ~ 150 之間隨意一個數字,我這邊是以 68 為範例。

6. 轉發通訊埠

再來我們要進入一個叫做「通訊埠轉發」的頁面,接著新增規則。
※一樣各家路由廠商命名可能不同,像我家另一台 Router 就是把此功能頁命名為「通訊埠導向」。

IP 的欄位請輸入剛才我們為電腦保留的那組 IP。
內部和外部的通訊埠都填寫 22,這是因為 SSH 通訊埠號預設為 22。
協定的地方我們選擇 TCP。

好啦!
到這邊我們的 OpenSSH 伺服器和 Router 就已經全部設定好了。
接下來我們可以準備另一台電腦嘗試遠端連線囉!

OpenSSH 用戶端遠端連線

終於到了要驗證成果的時候了,這裡要搬出媽媽的筆電來示範一下。

※小提醒
記得我們在開頭說過,要進行 SSH 遠端連線的話,需要安裝 OpenSSH 用戶端功能對吧!若要確定自己的電腦有沒有安裝,查詢方式如同開頭一樣打開 Apps & features ( 應用程式與功能 ) 進行清單搜尋就可以了。
不過現在 Windows 系統都已經有預裝 OpenSSH 用戶端,所以忽略這步也是沒問題的。

1. 使用命令提示字元 ( cmd ) 進行 ssh 命令操作

一樣我們搜尋 cmd 之後打開命令提示字元程式,接著我們要輸入以下命令。

ssh [Username]@[IP]
  • 開頭先輸入 ssh,代表你要使用 ssh 的功能操作。
  • [Username] 指得是你要登入的伺服器的使用者名稱,例如我安裝 OpenSSH 伺服器的那台電腦的使用者名稱是 Adrian,那我 [Username] 的部分就要輸入 Adrian
  • [IP] 是伺服器的真實 IP 位址。前面我們已經有紀錄了真實 IP 位址對吧,需要輸入的就是那一串。
    記住是真實 IP 位址哦!不是透過路由器自動分配的 192.168 開頭的那串浮動 IP 哦。
  • C:\Users\Cindy 代表此電腦的使用者,也就是發起命令的人。
  • ssh Adrian@21... 代表我要連至 IP 位址為 21… 的且使用者名稱為 Adrian 的電腦內部,輸入完請按 Enter。
  • Adrian@21…'s password: 看到這段就代表你已經成功透過 SSH 連到另一台電腦,但因為我有設置登入密碼 ( 就是 Windows 的開機密碼 ),所以遠端連線一樣要輸入密碼才可以登入,輸入完請按 Enter。

然後我們就成功登入進去囉!

  • adrian@ADRIANWIN10 是目前所在的伺服器 ( 電腦 ) 位址,此伺服器的電腦名稱為 ADRIANWIN10 且使用者名稱為 adrian
  • C:\Users\Adrian 為目前所在的伺服器的使用者名稱,也就是接下來要發起命令的人。可以看到這裡已經不是原本的使用者名稱 Cindy 而是我們遠端連進的另一台電腦的使用者名稱 Adrian

2. 成功連線後進行檔案管理

既然已經成功登入,代表我們現在可以自由的修改和存取 Adrian 電腦內的檔案。
不論是要在 Adrian 電腦中新增或刪除文件或是從 Adrian 電腦複製檔案到 Cindy 電腦裡等等,只要你想做的通通都可以。

我們先看一下 Adrian 電腦內有什麼資料 ( 呃好赤裸 🤣 ),晚點我接著做一個簡單的例子給大家示範一下。

我們可以透過 dir 命令查看當前路徑下有哪些文件資料。

可以看到 C:\Users|Adrian 路徑下總共擁有 3 個文件、23 個資料夾。
文件和資料夾名分別為大框內顯示的內容。

可以看到該路徑下有個名為 [Documents] 的資料夾 ( 最左側第 4 列 ),我們試著進入該資料夾操作一下。

透過 cd 命令可以進入其它路徑位址,並再次使用 dir 命令看一下路徑下的資料有哪些。

這次我們看到在 C:\Users\Adrian\Documents 路徑下總共有 0 個文件、 12 個資料夾,資料夾名分別是以下這些。

[Adobe]
[Course]
[Custom Office Templates]
[Fonts]
[Personal]
[Project]
[Software]
[WeChat Files]
[WindowsPowerSheell]
[Work]

現在試著在目前的路徑下遠端新增一個資料夾,透過 mkdir 命令可以新建資料夾。
為了方便辨識,我將這個資料夾命名為 fromCindyLaptop。

這個新增的資料夾可不是只有在命令行視窗上會顯示哦!
為了證明我們是真的成功在 Adrian 的電腦內新增這個資料夾,我也打開 Adrian 電腦內的圖形化介面給你們看一下。

看~~~很神奇吧!
往後我們在任何電腦上,只要重複方才的用戶端步驟就可以登入到家中的電腦內囉!

Adrian の碎念時間

哇!沒想到寫技術分享文比寫學習筆記還累 🤣
這篇文章我斷斷續續寫了好幾天,其實這些操作對於有一點電腦知識的人來說都不難,但我希望讓對路由或終端命令不了解的人也能聽懂,所以花了很多時間在解釋這些細節,還請高手多多包涵啦。

--

--

Adrian Wang

Adrian 的宅宅筆記 📖 記錄前端開發及作業系統等學習筆記,偶爾也會分享我常用的生產力工具 | Github @adrianwangdev