Ssh
autofs 無法使用已棄用的密鑰算法在主機上使用 sshfs 掛載遠端目錄
這是我的配置:
/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 開始顯示內容。