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