基於保安理由, 很多伺服器都會禁止 root 登入 SSH, 我認為這個設定也是必須的。在一些內部測試用的伺服器, 為了方便可能會允許 root 登入, 另一個較好的做法是設定只讓個別 IP 用 root 帳號登入 SSH.
透過 sshd 的 “Match Address” 便可以實現, 除了登入 root 帳號外, 也可以設定其他帳號, 只允許個別 IP 登入。
首先開啟 sshd 的設定檔:
- $ sudo vi /etc/ssh/sshd_config
找到 “PermitRootLogin no” 一行, 在後面加入 Match Address, 例如以下設定是允許 192.168.1.100 的 IP 登入 root 帳號:
1 2 3 4 5 6 |
## Block root login to every one ## PermitRootLogin no ## allow root login for 192.168.1.100 ## Match Address 192.168.1.100 PermitRootLogin yes |
除了允許個別 IP 外, 也可以允許設定整個 class C:
1 2 3 4 |
## Block root login to every one ## ## allow root login for 192.168.1.* ## Match Address 192.168.1.0/24 PermitRootLogin yes |
或者允許多個 IP:
1 2 3 4 |
## Block root login to every one ## ## allow root login for 192.168.1.10 and 192.168.1.20 ## Match Address 192.168.1.10,192.168.1.20 PermitRootLogin yes |
儲存設定後可以先測試語法是否正確:
- # sshd -T
沒有問題後重新載入 sshd 設定便完成了:
- $ sudo systemctl reload sshd