基于保安理由, 很多服务器都会禁止 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