fuse.sshfs: не может использовать `SHOPT = val` в / etc / fstab

man sshfs говорит:

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

Однако, если я попробую:

 $ sudo mount -t fuse.sshfs root@10.181.10.99:/ /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 ?

Если вы используете версию ssh до того, как этот запрос на перенос был объединен, есть два способа передать произвольные параметры ssh через строку монтирования sshfs в /etc/tab :

непосредственно

В параметрах монтирования /etc/fstab (или после -o используя mount в командной строке), добавьте 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 избегает символа пробела
  • Если у вас есть , в командной строке, укажите его так: \,
  • Версии 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 : add -vv , например:

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

Вы также можете попробовать следующие варианты монтирования:

  • sshfs_debug
  • debug (вывод с высокой степенью надежности)
 -o SSHOPT=VAL 

это просто фиктивный ключ = значение, где SSHOPT необходимо заменить параметром SSH, который вы хотите установить (в вашем случае KexAlgorithms ). Поэтому правильная команда должна выглядеть так:

 $ sudo mount -t fuse.sshfs root@10.181.10.99:/ /home/ravi/mnt/ravidroid -o port=2222,identityfile=/home/ravi/.ssh/id_4096rsa_20kdf,KexAlgorithms=diffie-hellman-group1-sha1