几天前,我将操作系统从 Windows 换成了 Fedora。因此,对于任何 Linux 的东西,我都还是个新手。
我的基本目标是在启动时添加一个远程驱动器(我的云驱动器),以便我可以使用它。我尝试创建一个将在启动时执行的 bash 脚本sftp
。我发现以下代码
sshfs [email protected]:/targetpath ~/mountdir
我的问题是这适用于 root 权限,但不适用于我的用户权限。使用我的正常权限执行时出现错误read: Connection reset by peer
。因为我想在启动时执行此操作,所以我不想使用 root 权限。
我还搜索了解决方案来保存我的用户名和密码,但我还没有找到办法,这样我就不必每次都输入它们。
背景
系统状态:我谷歌搜索了很多次,fstab
最终找到了这个文件。我花了一整天的时间,最后系统崩溃了,因为启动系统时没有网络连接,所以无法包含目标磁盘(至少我认为是这样)。
脚本(WebDAV、sftp):然后我尝试使用 WebDAV
mount -t davfs2 https://webdav.example.com ~/mountdir
但这也只适用于 root 权限 (Error: mount: only "root" can do that
)。我的下一步是使用 sftp,它似乎效果更好。但随后我收到了上述错误 (Error: read: Connection reset by peer
)。
我不想将文件存储在本地,因为没有足够的可用磁盘空间。
抱歉,如果这是一个愚蠢或非常基本的问题,但我找不到任何继续的方法。谢谢你的帮助。
答案1
您永远都不应该以 root 身份运行脚本!我可以想出一些以 root 身份运行脚本的理由,但总的来说,这不是一个好主意。sshfs
也不需要 root 身份即可运行!:)
这应该允许您使用密码挂载远程 ssh 文件系统sshfs
(如果您可以使用证书而不是密码会更好)。
echo <mypassword> | sshfs <myuser>@<site.tld>:/ ~/<myfolder> -o workaround=rename -o password_stdin
替换<mypassword>
、<myuser>
、<site.tld>
和<myfolder>
。
例子:
echo 4ghNZGpk182q8SvY0kw0 | sshfs [email protected]:/ ~/diblo -o workaround=rename -o password_stdin
笔记:确保挂载文件夹~/<myfolder>
存在或者创建它(记住从要运行脚本的 Linux 用户创建该文件夹):
mkdir -p ~/<myfolder>
代替<myfolder>
。