使用密钥登陆群晖NAS SSH

群晖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即可,可以设置记住密码,密钥请妥善保管。