Вот моя конфигурация:
/etc/auto.master
/mnt/10 /etc/auto.10 uid=0,gid=0,--ghost
/etc/auto.10
root -fstype=fuse,allow_other,follow_symlinks,ssh_command=/etc/ssh/sshpass.10.sh :sshfs\#root@10.28.0.10\:/root
Поскольку удаленное устройство является устройством и у него нет возможности сохранить ключ для входа в систему без пароля, мне нужно передать пароль с помощью команды sshpass. Для этого я использовал параметр ssh_command =
/etc/ssh/sshpass.10.sh
#!/bin/bash
sshpass -f /etc/ssh/sshpass.10 ssh -o HostKeyAlgorithms=ssh-dss $*
Мне пришлось использовать -o HostKeyAlgorithms = ssh-dss в моей конфигурации команды ssh, потому что это устройство имеет старый сервер openssh. Устройство снято с производства и больше не обновляется. Когда я использую ssh с обновленного компьютера, он жалуется на отсутствие подходящих алгоритмов:
Unable to negotiate with 10.28.0.10 port 22: no matching host key type found. Their offer: ssh-dss
Итак, с обычным ssh мне нужно сделать:
ssh -o HostKeyAlgorithms=ssh-dss root@10.28.0.10
Итак, я сделал это в установочном файле ssh /etc/ssh/sshpass.10.sh, как я сказал выше.
И последний файл имеет пароль root ssh в первой строке файла с разрывом строки. /etc/ssh/sshpass.10 то есть:
password
Я не могу показать здесь разрыв строки, хотя и, конечно же, это не тот пароль, который я использую.
Когда я пытаюсь перейти по пути, который был настроен в этих файлах, я могу перейти к: / mnt / 10, и там появится корневая папка. Пытаюсь зайти внутрь, выдает ошибку:
Can't access '/mnt/10/fsshroot/': No such file or directory
Хорошо, я разобрался. Я пробовал напрямую запустить:
sudo sshfs root@10.28.0.10:/root /tmp/10/ -o reconnect,allow_other,follow_symlinks,ssh_command='ssh HostKeyAlgorithms=ssh-dss'
и это дало мне ошибку:
read: Connection reset by peer
Итак, это не сработало. Я начал искать способ исправить это и обнаружил, что для этого мне нужно настроить 2 строки в: / etc / ssh / ssh_config
Host 10.28.0.10
HostKeyAlgorithms=+ssh-dss
Затем я удалил:
-o HostKeyAlgorithms=ssh-dss
из: /etc/ssh/sshpass.10.sh, чтобы сделать это так:
#!/bin/bash
sshpass -f /etc/ssh/sshpass.10 ssh $*
Затем, после перезапуска службы autofs, она заработала. Мой / mnt / 10 / root начал отображать содержимое.