群晖NAS暴露到公网后,需要考虑安全问题,使用 SSH 密钥登陆方式 ,禁用密码登陆,提高安全性,彻底杜绝暴力破解!
要修改的配置文件:``/etc/ssh/sshd_config``
# 1.生成服务端和客户使用的证书
ssh 登陆群晖(注意切换到root ``sudo -i``),运行以下命令:
```bash
ssh-keygen -t rsa -b 2048 -C "SherlockNASCert"
```
生成一个2048位的 RSA证书 ,注意是大写C,标记证书用的。
证书位置默认即可,建议设置一下密钥口令。
执行完毕后会在:``/root/.ssh/``目录下生成两个文件证书文件
公钥文件:``/root/.ssh/id_rsa.pub``
密钥文件:``/root/.ssh/id_rsa``
将私钥文件``id_rsa``下载到本地,之后登陆会用到。
# 2.将公钥证书文件写到证书验证文件``authorized_keys``里
```bash
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
```
# 3.修改群晖 SSH 服务配置文件``/etc/ssh/sshd_config``
去掉一下几行的注释#即可:
```bash
RSAAuthentication yes //开启RSA证书验证
PubkeyAuthentication yes //开启公钥证书验证
AuthorizedKeysFile .ssh/authorized_keys //公钥证书就放在这个文件里
PasswordAuthentication no // 禁用密码验证,如果为yes表示开启密码验证。开启证书验证后,这个可以关闭。
```
> 切记:刚开始设置时,PasswordAuthentication 请先保持为 yes,以防万一修改失败导致无法进入ssh,待修改证书登陆成功后,再修改为no。如果出现意外导致无法登录SSH可以使用Telnet救急。
# 4.重启群晖
本来想使用重启 sshd 的命令来实现,结果发现启动失败了,直接无法进入SSH。。重启NAS后生效了。
> 这样设置完,使用密钥登录SSH默认即为root用户。
命令摘录如下:
```bash
# 重新载入sshd配置文件
synoservicectl --reload sshd
# 重启sshd服务
synoservicectl --restart sshd
```
# 5.设置 XShell 为证书登录即可
导入1 中下载的私钥``id_rsa``即可,可以设置记住密码,密钥请妥善保管。
使用密钥登陆群晖NAS SSH