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