我想要的是:
- 启动我的系统(本例中是笔记本电脑上的 ubuntu 18.04)
- 通过以下方式访问远程文件系统
/home/<user>/mnt/remote-HD0
我尝试过
- 使用 sshfs 命令编辑 /etc/fstab
- 使用 @reboot 标签编辑 /etc/crontab 并运行脚本来执行 sshfs 命令
- 尝试定制 systemd 服务来运行脚本来执行 sshfs 命令
我总是使用绝对路径,并且传递了一个 sshkey(通过 ssh-copy-id 复制到远程系统),这样我就不必输入密码了。我还取消了user_allow_other
的注释/etc/fuse.conf
。
什么不起作用?
如果我输入 cmd
sshfs -o allow_other,delay_connect,reconnect,identityfile=/home/<user>/.ssh/id_rsa <remote@filesystem>:/mnt/HD0 /home/<user>/mnt/remote-HD0
在终端中或通过可执行脚本运行它,它按预期工作。我可以访问文件系统,而不必输入 pw。但是当我使用 fstab 版本时
sshfs#<remote@filesystem>:/mnt/HD0 /home/<user>/mnt/remote-HD0 fuse defaults,_netdev,allow_other,identityfile=/home/<user>/.ssh/id_rsa 0 0
直到我使用它它才会安装
sudo mount -a
并要求输入 pw 进行 ssh 连接,然后按 Enter 输入空密码....
另外两次尝试(crontab 和 systemd)要么根本不起作用,要么已经损坏,因为/home/<user>/mnt/remote-HD0
无法访问,即
ls /home/<user>/mnt/remote-HD0
ls: cannot access 'remote-HD0': Input/output error
ls -la
drwxrwxr-x 4 <user> <user> 4096 Jun 19 13:46 .
drwxr-xr-x 38 <user> <user> 4096 Jun 19 15:22 ..
d????????? ? ? ? ? ? remote-HD0
因此安装过程出了点问题。(可能)有两个问题:
sshfs 命令在网络上线之前执行(我尝试使用 crontab 和 systemd 服务来考虑到这一点)
即使使用睡眠命令,仍然会出现“输入/输出错误”的问题。
我确实花了几个小时尝试解决这个问题,并且了解了所有使用的方法,但此时此刻,我只希望找到一个解决方案,以便我可以继续前进(最好使用 fstab 或 systemd,因为这似乎是正确的尝试)。
答案1
按照修订 #4问题的:
将该行添加
export SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
到 sh 脚本解决了 cron 的问题。