0%

mycloud os 5 更改ssh配置

mycloud os 5 更改ssh配置

wd pr4100 安装完entware后可以使用秘钥登录,但是系统默认是允许密码登录的,打算把nas ssh访问映射到外网,还是一个安全问题,从wd论坛上查了下资料, 然后禁止密码登录 不确定固件升级后是否还有生效,等下次固件升级后 验证(经过验证固件升级 不会影响key登录)

原理

原理其实很简单,就是把配置文件 单独保存一份,然后配置mycloud 的计划任务,开机后 把原来的sshd服务停掉,然后使用新的配置文件重启
如果您在此过程中出错并需要将 ssh 重置为默认设置以便登录,请打开 webgui 并禁用并重新启用 ssh。您的配置设置不会受到影响

更改配置文件

复制原来的配置文件到新的目录,然后把配置文件修改成你需要的,笔者通过opkg安装了vim编辑器,如果不能编辑 就复制到windows编辑完 然后上传点到nas

1
2
cp /etc/ssh/sshd_config /usr/local/config
vim /usr/local/config

下面是笔者的配置文件,将 PasswordAuthentication yes该成 PasswordAuthentication no

1
2
3
4
5
6
7
8
9
10
11
12
13
Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
SyslogFacility AUTHPRIV
AllowUsers sshd
PermitRootLogin yes
PubkeyAuthentication yes
PermitEmptyPasswords yes
PasswordAuthentication no
ChallengeResponseAuthentication no
TCPKeepAlive yes
MaxAuthTries 5
Subsystem sftp /usr/bin/sftp-server
新增计划任务

编辑文件 /usr/local/config/config.xml,确保非常小心地执行此操作,因为您可以使您的设备无法启动。

找到 crond 部分并添加另一个名称条目,将其命名为 sshd_config,例如:

1
<name id="9">sshd_config</name>

将其添加到下一个顺序 ID 的底部。

在 crond 部分的底部,添加新的 sshd_config 部分,如下所示:

1
2
3
4
5
6
7
<sshd_config>                     
<item id="1">
<method>3</method>
<1>@reboot</1>
<run>sleep 120; pkill sshd; /usr/sbin/sshd -E /var/log/sshd.log -f /usr/local/config/sshd_config &amp;</run>
</item>
</sshd_config>
重启

在webui上重启nas,等nas完全重启后,使用密码登录提示 禁止密码登录
查看sshd的启动命令

1
/usr/sbin/sshd -E /var/log/sshd.log -f /etc/ssh/sshd_config

变为

1
/usr/sbin/sshd -E /var/log/sshd.log -f /usr/local/config/sshd_config