Linux 系統已經廣泛的應用於各種伺服器上頭,只要伺服器有連接外網,也就是跟國際網路接在一起,就有可能會被熟悉該系統的駭客入侵,其中我們又最常使用 SSH 來連線至 VPS(虛擬專用伺服器)等遠端機器,不管進行管理、建置還是傳輸都很好用,而擁有最大權限的 root 帳號最好是將其 SSH 連線關閉,伺服器會更加安全。那你一定想問,如果沒有 root 那之後要怎麼管理伺服器?簡單!建立一個新使用者並給予 sudo 權限,這樣就能用該使用者進行伺服器管理啦!
在關閉 root 之 SSH 連線前,來建立新使用者吧!指令如下:
adduser username
※ username 為自訂之使用者名稱
接著當然會被要求設定密碼與確認密碼:
New password:
Retype new password:
接著輸入使用者基本資料,直接按 Enter 可以跳過(即使用預設值),最後記得做確認輸入「Y」:
Enter the new value, or press ENTER for the default
Full Name []: username
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
到這邊就完成建立新使用者的工作,讓它加入 sudo 群組吧!指令在下方。在 Ubuntu 中預設以 sudo 群組來管理可用 sudo 指令的使用者。sudo 可以讓一般使用者擁有近乎 root 的權限。
usermod -aG sudo username
※ username 請輸入剛才建立之新使用者名稱
新使用者已擁有 sudo 權限,就直接登出改用新使用者登入吧!
logout
ssh username@server
為了確保真的擁有 sudo 權限,來測試用 sudo 去查看 /root/
:
sudo ls -la /root
指令下去後會告知需要輸入新使用者之密碼:
[sudo] password for username:
輸入成功後只要看到目錄列出來就OK了!接下來要去 SSH 設定區裡,指令:
sudo nano /etc/ssh/sshd_config
進入後在裏頭新增以下設定值:
PermitRootLogin no
Ctrl+X 離開,會問是否存檔,請輸入 Y 存檔。接著重新啟動 SSH 服務以讓設定生效:
sudo systemctl restart ssh
好了!從此 root 就無法用 SSH 連線了!如果哪天需要用到,再把設定註解或移除,重新啟動 SSH 服務就OK啦!
▲ 終端機截圖,上半部是 SSH 設定檔內的兩行變更,下半部是指令嘗試的部分~如果登不進去就會顯示 Permission denied。
進階:不用密碼登入反而更安全!
使用新使用者登入伺服器操作,依照這篇文章設定好 SSH 公開金鑰認證,在剛剛的 SSH 設定中新增 PasswordAuthentication no
禁用密碼登入,記得一樣要重新啟動 SSH 服務,這樣伺服器會更安全喔!
留言區 / Comments
萌芽論壇