Ssh

autofs 無法使用已棄用的密鑰算法在主機上使用 sshfs 掛載遠端目錄

  • March 28, 2018

這是我的配置:

/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 $*

我不得不在我的 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 root@10.28.0.10

因此,如上所述,我在 /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

好的,我已經想通了。我嘗試直接執行:

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

所以,它沒有用。我開始尋找一種方法來修復它並發現,為了做到這一點,我必須在 /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 開始顯示內容。

引用自:https://serverfault.com/questions/904908