autofs 无法在密钥算法已弃用的主机上使用 sshfs 挂载远程目录

autofs 无法在密钥算法已弃用的主机上使用 sshfs 挂载远程目录

这是我的配置:

自动主机管理工具

/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 开始显示内容。

相关内容