fusion.sshfs:无法在 /etc/fstab 中使用 `SHOPT=val`

fusion.sshfs:无法在 /etc/fstab 中使用 `SHOPT=val`

man sshfs说:

-o SSHOPT=VAL
       ssh options (see man ssh_config)

但是,如果我尝试:

$ sudo mount -t fuse.sshfs [email protected]:/ /home/ravi/mnt/ravidroid -o port=2222,identityfile=/home/ravi/.ssh/id_4096rsa_20kdf,SSHOPT='KexAlgorithms diffie-hellman-group1-sha1'

我得到:

fuse: unknown option `SSHOPT=KexAlgorithms diffie-hellman-group1-sha1'

如何在 的条目ssh中使用任意选项?sshfs/etc/fstab

答案1

ssh如果您使用的是之前的版本这个拉取请求被合并后,有两种方法可以ssh通过sshfs挂载线传递任意选项/etc/tab

直接地

/etc/fstab挂载选项中(或-o在命令行上使用挂载后),添加ssh_command=,并ssh使用命令行选项指定命令,例如:

ssh_command=ssh\040-oKexAlgorithms=+diffie-hellman-group1-sha1

通过配置文件

最聪明的方法可能是指定一个配置文件:

ssh_command=ssh\040-F/home/USER/.ssh/config

配置文件可能已经具有所需的选项,并且使用它将使/etc/fstab条目变得更短。

笔记:

  • ssh需要额外的
  • 转义\040空格字符
  • ,如果命令行中有 a ,请这样引用:\,
  • sshfs之后的版本这个错误修复被合并不需要上述内容,但-F为了简洁或在许多安装点之间实现单一一致的配置,仍然可以使用该技巧。

例子:

ravidroid:  /ssh/ravidroid  fuse.sshfs  ssh_command=ssh\040-F/home/ravi/.ssh/config,reconnect,follow_symlinks,auto_cache,allow_other,default_permissions,uid=ravi,gid=ravi,noauto,users,x-systemd.automount,_netdev 0 0

测试/调试

root没有一样ssh-agent,键入mount <mountpoint>并检查它是否成功运行。

要获得详细ssh输出:添加-vv,例如:

ssh_command=ssh\040-vvF/home/USER/.ssh/config

您还可以尝试以下安装选项:

  • sshfs_debug
  • debug(极其详细的保险丝输出)

答案2

-o SSHOPT=VAL

只是伪造的 key=value,其中SSHOPT需要替换为您想要设置的 SSH 选项(在您的情况下KexAlgorithms)。因此正确的命令应该是这样的

$ sudo mount -t fuse.sshfs [email protected]:/ /home/ravi/mnt/ravidroid -o port=2222,identityfile=/home/ravi/.ssh/id_4096rsa_20kdf,KexAlgorithms=diffie-hellman-group1-sha1

相关内容