由于目前绿联官方没有开启 ssh 的方法,这样导致我想通过 rsync 备份文件到 NAS 里就没法做到了。
于是我想通过在 docker 里运行一个 alpine 容器,在容器里开启 ssh,而我只要将特定的目录挂载到容器内,就可以实现用 rsync 备份文件到 NAS。
创建容器
先搜索并下载 alpine 容器镜像
之后点击创建,起一个名字
把 -i 和 -t 选上
网络选择 host,这样就不用去设置端口
存储空间,把想要操作的文件夹挂载到容器里面,我选择放在 /mnt,注意后面要改为「读写」
那么要填写的内容就这些而已,可以点下一步,完成创建后再启动,也可以勾选下方的「创建后启动容器」这个选项。
配置与开启 ssh
之后在「容器管理」中找到我们刚才创建的容器,在它启动的情况下,点击详情,然后到最后的终端这里。
使用 apk add 来安装应用,这样装上 openssh 和 openrc
apk add openssh |
OpenRC 是一个用于 Linux 系统的初始化系统和服务管理器。它最初是为 Gentoo Linux 开发的,后来也被广泛地用于其他 Linux 发行版,特别是一些轻量级的发行版,如 Alpine Linux。OpenRC 的目标是提供一种简单而可靠的初始化和服务管理解决方案,它与传统的 sysvinit 和较新的 systemd 相比,更轻量级且易于配置。
之后修改 ssh 的配置文件,使用 vi 来打开
vi /etc/ssh/sshd_config |
找到 #PermitRootLogin prohibit-password 把前面的 # 去掉,然后把 prohibit-password 改为 yes。再把 PasswordAuthentication yes 前面的 # 去掉。
让 sshd 在容器启动时自启动(可以理解为开机自启,把容器当成一台机器)
rc-update add sshd |
此时如果直接用
rc-service sshd start |
来启动 sshd 应该启动不了,会报错。需要先执行
touch /run/openrc/softlevel |
然后就可以启动了
rc-service sshd start |
查看状态可以用
rc-service sshd status |
此时就可以使用 ssh 来连接了
❯ ssh root@192.168.68.197 |
但是容器的密码是什么呢?
其实并没有密码,如果我们想要使用密码得自己设置一个,输入 passwd 就可以设置密码。
/ # passwd |
这样我们就可以使用 root 用户名,加上自己设置的密码,来 ssh 连接上 alpine 容器。由于之前将 NAS 的特定文件夹挂载到 /mnt,可以使用 ls /mnt 命令,看看是否能在容器中看到 NAS 中的文件,可以的话就没问题了。