Linux 技术手札

SSH 安全性设定

由于 SSH 连线经过加密, 所以连接到 Unix Like 服务器一般会用 SSH, 以下是一些关于 SSH 服务器的安全设定:

SSH 服务器的设定档是 /etc/ssh/sshd_config,开启并修改以下内容:

1. SSH 默认埠号是 22,将它改成其他的埠号,例如我改成 22022, 找到:

Port 22

换成:

Port 22022

2. 将 root 禁止登入, 要用 root 权限时, 要先用其他帐号登入, 再用 su 指令切换到 root, 或者用 sudo。

把 PermitRootlogin 设成 no:

PermitRootlogin no

3. 开启用作管理服务器的帐号, 只准许该帐号或群组登入 SSH, 其他帐号不可以登入, 以下是准许 my_name 用户及 my_group 群组登入:

AllowUsers my_name
AllowGroups my_group

4. 如果帐号是空密码, 禁止登入:

PermitEmptyPasswords no

5. SSH 有两种通讯协定版本, 只开启 Protocol 2 版本:

Protocol 2

6. 使用金钥登入, 设定很容易, 而且储存了 private key 在工作站, 不用每次都输入密码。先要在工作站设定, 在 Linux 设定 public key 及 private key 可以用以下指令:

$ ssh-keygen -t rsa -b 4096

这时会建立两个档案作为 private key 及 public key:

~/.ssh/id_rsa -> private key
~/.ssh/id_rsa.pub -> public key

然后将 id_rsa.pub (public key) 上载到服务器, 例如服务器在 192.168.1.100:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.100

这个指令会将 public key 储存到服务器 ~/.ssh/authorized_keys/ 内。

然后回到服务器端, 开启 SSH 设定档 /etc/ssh/sshd_config, 将以下一行的注解取消, 即改成:

AuthorizedKeysFile %h/.ssh/authorized_keys

最后储存盘案,并重新启动 SSH 服务器:

# systemctl restart sshd
Exit mobile version