带有 RSA 密钥对的 SSHFS 自动挂载 fstab 要求输入密码

带有 RSA 密钥对的 SSHFS 自动挂载 fstab 要求输入密码

我有个问题。我添加了一个 SSH 服务器来安装到我的服务器。我将以下行添加到 /etc/fstab。

sshfs#[email protected]:/home/hd03_00_backup_server/ /mnt/server_backup fuse.sshfs IdentityFile=/root/.ssh/id_rsa_backup_server_home,port=23,rw 0 0

但命令

mount -a

仍然要求我输入密码。命令 :

sudo sshfs -p 23  [email protected]:/home/ /mnt/server_backup -o IdentityFile=/root/.ssh/id_rsa_backup_server_home

无需密码即可连接和安装。

答案1

这不是一个直接的答案,但这是我如何使用 systemd 安装单元实现同样的事情:

$ cat ~/.config/systemd/user/home-stew-shared.mount 
[Mount]
What=%[email protected]:
Where=%h/shared
Type=fuse.sshfs

我将其放在总线上systemd --user,因此它仅在拥有的用户登录时安装,并在该用户注销时卸载。我为每个用户提供了其中一个,因此任何登录的人都会在其主目录中获得他们的个人挂载。 , UID,都是隐含的GIDIdentityFile但您可以选择添加一行:

Options=umask=0022,uid=%U,gid=%G,IdentityFile=%h/.ssh/id_rsa_backup_server_home

--system如果您不介意root拥有一切,您也可以选择在公交车上运行此程序。


我的答案在上面。以下是我尝试直接回答您的问题。我无法确定答案,但如果您不喜欢上面的 systemd 解决方案,我希望这至少能帮助您在排除故障时从不同的方向思考。


我相信mount可以用作mount.fuse.sshfs帮手。

$ dpkg -S /usr/sbin/mount.fuse.sshfs 
sshfs: /usr/sbin/mount.fuse.sshfs
$ ls -l $_
lrwxrwxrwx 1 root root 12 Jul  7  2021 /usr/sbin/mount.fuse.sshfs -> ../bin/sshfs

这是由sshfsdebian 中的软件包提供的。如果您没有这个助手,您可以创建它并将其链接到/usr/bin/sshfs.

ln -s /usr/bin/sshfs /usr/local/sbin/mount.fuse.sshfs

我不是这方面的专家/etc/fstab,但我在阅读时man mount发现:

程序 mount 和 umount(8) 支持文件系统子类型。子类型由“.subtype”后缀定义。例如“fuse.sshfs”。建议使用子类型表示法,而不是向挂载源添加任何前缀(例如“sshfs#example.com”已弃用)。

弃用可能表明您的行开头存在问题fstab。您可能正在使用不受支持的标准组合

sshfs#[email protected]:/remote /local fuse       ... <-- Deprecated syntax
      [email protected]:/remote /local fuse.sshfs ... <-- New syntax
sshfs#[email protected]:/remote /local fuse.sshfs ... <-- Your syntax

最后一个想法是sshfs港口。在您的 中/etc/fstab,您定义port=23为选项之一。在你的sshfs,你使用-p 23。如果换成你,会发生什么-o IdentityFile=...,port=23

相关内容