我正在运行以下版本的 GNU/Linux Debian:
cat /etc/issue
说:
Debian GNU/Linux 9
使用以下内核:
uname -r
说:
4.9.0-2-amd64
并运行以下版本的 OpenSSH:
apt-cache policy openssh-server | grep Installed
说:
Installed: 1:7.4p1-7
我的目的是加强一点服务器的 SSH 安全性,因为我需要从任何 IP 访问,甚至从任何 VPN 访问。
到目前为止我已经完成的这些步骤:
禁用直接 root 访问:
cat /etc/ssh/sshd_config | grep PermitRootLogin
设定为:
PermitRootLogin no
执行 SSH 协议版本 2:
cat /etc/ssh/sshd_config | grep Protocol
设定为:
Protocol 2
将端口更改为随机端口,我不会在这里写,所以说12345:
cat /etc/ssh/sshd_config | grep Port
设定为:
Port 12345
我为此在防火墙上打了个洞:
sudo iptables -A INPUT -p tcp -m tcp --dport 12345 -m comment --comment "ssh" -j ACCEPT
我已经生成了一个 8 KB 长度的新密钥(我知道 CPU 开销和这种大密钥的其他缺点):
ssh-keygen -t rsa -b 8192
然后我验证了尺寸匹配:
ll /home/fictional_user/.ssh/id_rsa*
是应该的,以及访问权限:
-rw------- 1 fictional_user fictional_group 6.3K Mar 16 11:53 /home/fictional_user/.ssh/id_rsa -rw-r--r-- 1 fictional_user fictional_group 1.4K Mar 16 11:53 /home/fictional_user/.ssh/id_rsa.pub
我已添加此密钥并验证没有其他密钥:
eval $(ssh-agent -s) ssh-add ssh-add -l
结果是:
8192 SHA256:gibberish /home/fictional_user/.ssh/id_rsa (RSA) 8192 SHA256:gibberish fictional_user@fictional_computer (RSA)
我已将密钥导入两台机器,它们将维护服务器:
ssh-copy-id fictional_user@public_ip -p 12345
之后,我完全禁用了密码验证:
cat /etc/ssh/sshd_config | grep PasswordAuthentication
设定为:
PasswordAuthentication no
问题:我是否忘记了任何事情,或者这是我能做的最大事情?