为什么我无法在只读/机器上使用 ssh?

为什么我无法在只读/机器上使用 ssh?

首先,我准确地说我能够在这台机器上进行 ssh(我认为是基于 Debian 7 的嵌入式系统),但我必须设置/为只读以防止出现任何断电问题。我验证了/tmp, /var/log,/var/lock仍然可写,但/home在正常执行中不应该写入任何内容的文件夹是只读的。

无论如何, anssh root@ip_address失败了ssh: connect to host ip_address port 22: Connection refused message

ssh -v ...告诉:

OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "192.168.32.30" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 192.168.32.30 [192.168.32.30] port 22.
debug1: connect to address 192.168.32.30 port 22: Connection refused
ssh: connect to host 192.168.32.30 port 22: Connection refused

您能告诉我原因以及如何解决吗?

编辑:这是我将 FS 设置为 RO 的方法:

原始fstab文件:

/dev/mmcblk0p2       /                    auto       defaults          1  1
proc                 /proc                proc       defaults              0  0
devpts               /dev/pts             devpts     mode=0620,gid=5       0  0
tmpfs                /run                 tmpfs      mode=0755,nodev,nosuid,strictatime 0  0
tmpfs                /var/volatile        tmpfs      defaults              0  0
/dev/mmcblk0p3       /data                auto       defaults,sync              0  1

修改fstab文件:(我只改了第一行)

/dev/mmcblk0p2       /                    auto       ro            1  1
proc                 /proc                proc       defaults              0  0
devpts               /dev/pts             devpts     mode=0620,gid=5       0  0
tmpfs                /run                 tmpfs      mode=0755,nodev,nosuid,strictatime 0  0
tmpfs                /var/volatile        tmpfs      defaults              0  0
/dev/mmcblk0p3       /data                auto       defaults,sync              0  1

编辑2:

我回答某人,如果文件系统是 rw,我可以使用 ssh 有效访问。这并不完全正确。如果我使用选项 ro 启动fstab,然后/在 rw 中重新挂载,我将无法使用 ssh 访问。如果我将选项更改回default并重新启动,它就会起作用。

答案1

好的,非常感谢大家(EchoMike444、iLkkachu、Kamil Maciorowski)为我指明了正确的方向。

事实上,我没有明确指出我的sshd是什么dropbear,这个需要写信/var/lib才能开始。

所以我必须将此挂载点添加到 tmpfs 才能通过 ssh 连接到我的目标。

答案2

ssh 需要写入/tmp.

/tmp//坐骑上。

如果你运行df /tmp它会显示你的/ 安装点,你可以检查这df /run是一个不同的安装点。

相关内容