![为什么我无法在只读/机器上使用 ssh?](https://linux22.com/image/164213/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E6%97%A0%E6%B3%95%E5%9C%A8%E5%8F%AA%E8%AF%BB%2F%E6%9C%BA%E5%99%A8%E4%B8%8A%E4%BD%BF%E7%94%A8%20ssh%EF%BC%9F.png)
首先,我准确地说我能够在这台机器上进行 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
是一个不同的安装点。