我有个问题。我添加了一个SSH服务器来挂载到我的服务器上。我在/etc/fstab中添加了以下一行。
sshfs#user@server.com:/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 user@server.com:/home/ /mnt/server_backup -o IdentityFile=/root/.ssh/id_rsa_backup_server_home连接和安装没有密码。
发布于 2022-02-21 20:46:34
这不是一个直接的答案,但下面是我如何使用systemd挂载单元实现相同的目标:
$ cat ~/.config/systemd/user/home-stew-shared.mount
[Mount]
What=%u@192.168.1.9:
Where=%h/shared
Type=fuse.sshfs我把它放在systemd --user总线上,这样它只能在拥有的用户登录时挂载,并且在用户注销时卸载。我为每个用户提供了其中之一,所以任何登录的人都可以在自己的主目录中获得个人挂载。UID、GID、IdentityFile都是隐含的,但您可以选择添加一行:
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这是由debian中的sshfs包提供的。如果您没有这个助手,您可以创建它并将其链接到/usr/bin/sshfs。
ln -s /usr/bin/sshfs /usr/local/sbin/mount.fuse.sshfs我不是/etc/fstab的专家,但我读了man mount,发现:
程序挂载和umount(8)支持文件系统子类型。子类型由'.subtype‘后缀定义。例如'fuse.sshfs‘。建议使用子类型表示法,而不是向挂载源添加任何前缀(例如,'sshfs#example.com‘不推荐使用)。
反对意见可能会提示您的fstab行的开头有问题。您可能正在使用不受支持的混合标准。
sshfs#user@server.com:/remote /local fuse ... <-- Deprecated syntax
user@server.com:/remote /local fuse.sshfs ... <-- New syntax
sshfs#user@server.com:/remote /local fuse.sshfs ... <-- Your syntax最后一个想法是sshfs端口。在/etc/fstab中,将port=23定义为选项之一。在您的sshfs中,您使用-p 23。如果你用-o IdentityFile=...,port=23代替,会发生什么?
https://unix.stackexchange.com/questions/691582
复制相似问题