[Ubuntu] 如何安裝openssh-server,支援 SSH Server 讓用戶從外部登入操作


約莫三年前左右吧,曾經介紹過一篇「[Oracle VM VirtualBox 教學] 以Windows平台安裝Ubuntu(Linux)為例」,在這篇文章中,教大家怎麼利用VirtualBox來安裝Ubuntu,即便現在的VirtualBox的版本已經有更新,但仍是可以參考使用,而本文主要想延續這個主題,補充一下小功能,什麼功能呢?即是 SSH Server !如果你是個程式開發者,可能你是不需要用到Ubuntu介面的(桌面版),相反地,你可能更常需要用SSH連到VM裡面來操作檔案,但是預設的Ubuntu裝好後只支援SSH Client,而沒有支援SSH Server,也就是說你可以從Ubuntu中用SSH外連出去,但卻無法從外部連到VM的Ubuntu中,所以本文就想要教大家如何透過安裝openssh-server的方式,輕鬆建立起SSH Server,可讓外部使用者順利的連入VM操作。

目前示範的Ubuntu版本為:18.04 桌面版

剛裝好的Ubuntu支援SSH Server嗎?

有圖有真相,讓我們先來查一下剛安裝好的Ubuntu是否有支援SSH Server:請先打開終端機,輸入以下指令,來看看裝了什麼有關SSH的工具

dpkg -l | grep ssh

可以看到預設安裝的套件只有openssh-client,這也是為什麼無法從外部連入的原因

openssh client

安裝openssh-server

前言已經提到了,要讓外部的用戶連入VM的Ubuntu中,最常見的方法就是直接安裝openssh-server,讓Ubuntu支援SSH Server的功能,指令如下:

sudo apt-get install openssh-server

安裝過程若有詢問是否要安裝,輸入「y」進行安裝即可

openssh server安裝過程

安裝好後,我們再來看一下,現在系統多安裝了什麼工具。由下圖可以看到,已經多了 openssl-server 和 openssl-sftp-server,這樣就大功告成啦!

提示字

註:openssl-server 和 openssl-sftp-server有什麼不同呢?不了解的人可以參考「Are SSH and SFTP the Same?」這篇文章

再來,我們試著從外部用SSH連進VM看看:請用以下的指令查一下目前系統的IP

hostname -I

在本例中,得知IP位置為:172.16.66.167

查詢主機IP

然後直接用外部的SSH工具連線試試,指令如下:

ssh 使用者名稱@ip

最後就可以看到連線成功的畫面囉!!!

SSH連線

疑難排解

如果在使用過程中,發現SSH Server沒作用,可以先使用下列指令查看它的狀態

sudo systemctl status ssh

如果查出來的狀態不是在 active (running)中,則可使用下列指令進行啟動

sudo systemctl enable ssh
sudo systemctl start ssh

延伸閱讀:
[Linux] Ubuntu 如何利用 Netplan 設定 固定IP