如何为 SSHFS 指定 SSH 选项?

如何为 SSHFS 指定 SSH 选项?

我原本是作为后续问题问的这里。不幸的是,没有任何回复,因此我将其作为单独的问题发布。

根据文档,您应该能够使用ssh带有的选项sshfs。您如何做到这一点?我尝试过类似的东西-o User=joe,但 fuse 给我一个错误,说“用户”不是可识别的选项。

另外,帮助这个问题也将不胜感激。


编辑:

我特别参考了 sshfs 手册页中的以下内容。

SSHFS 选项:

  -p PORT
         equivalent to '-o port=PORT'

  -C     equivalent to '-o compression=yes'


  -o password_stdin
         read password from stdin (only for pam_mount!)

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

我试图指定与主机不同的远程用户名(换句话说,不是user@host:dir)。原因是特定格式对某些机构分配的用户名不友好。例如,如果机构分配用户名[email protected],则 sshfs 和 curlftpfs 等程序将无法正确解释[email protected]@host:dir。相反,它们将尝试以First.Last主机身份登录institution.edu@host

您能再解释一下吗idmap?我不太懂手册页上的内容。


编辑:

如果我使用idmap,我将不得不创建硬编码文件。我希望避免这种情况,以便用户只需使用单个命令,而无需知道它在后台如何工作。最终,即使我离开后,其他人也可能会使用它。即便如此,文档说文件格式是username:uid。哪个是本地的,哪个是远程的?

答案1

要将 SSH 选项传递给 SSHFS,您可以使用ssh_command

例如,要传递-c aes128-cbc给 SSH,请使用:

sshfs -o ssh_command='ssh -c aes128-cbc' ...

答案2

您可以立即传递几个选项:-p PORT(将 ssh 端口从默认的 22 更改)-C(指定您想要压缩)

答案3

TL/DR:对于需要路径的选项,请使用绝对路径。

sshfs 手册页的这一部分表明它应该可以很好地与以下内容配合使用-o

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

但是,我在传递证书文件时遇到了麻烦-o CertificateFile=path/to/cert。事实证明,它只适用于证书文件的绝对路径,而普通路径则ssh可以轻松接受相对路径。

相关内容