这是我的配置:
自动主机管理工具
/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\#[email protected]\:/root
由于远程设备是一种电器,无法保存密钥来进行无密码登录,因此我必须使用 sshpass 命令传递密码。为此,我使用了 ssh_command= 参数
/etc/ssh/sshpass.10.sh
#!/bin/bash
sshpass -f /etc/ssh/sshpass.10 ssh -o HostKeyAlgorithms=ssh-dss $*
我必须在我的 ssh 命令配置中使用 -o HostKeyAlgorithms=ssh-dss,因为该设备有一个旧的 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 [email protected]
因此,我在 /etc/ssh/sshpass.10.sh ssh 设置文件中进行了操作,如上所述。
最后一个文件在文件第一行有一个换行符,其中包含 ssh root 密码。/etc/ssh/sshpass.10 即:
password
但我无法在这里显示换行符,当然,这不是我正在使用的密码。
问题:
当我尝试转到这些文件中配置的路径时,我可以到达:/mnt/10,并且根文件夹出现在那里。我尝试进入它,但出现错误:
Can't access '/mnt/10/fsshroot/': No such file or directory
答案1
好的,我明白了。我尝试直接运行:
sudo sshfs [email protected]:/root /tmp/10/ -o reconnect,allow_other,follow_symlinks,ssh_command='ssh HostKeyAlgorithms=ssh-dss'
它给了我一个错误:
read: Connection reset by peer
所以,它不起作用。我开始寻找修复它的方法,并发现,为了做到这一点,我必须在 /etc/ssh/ssh_config 中配置 2 行
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 开始显示内容。