概要 †WindowsからLinux上のディレクトリをsshでマウントするとしたら使うのはsshfsとdokanというのが昔からの定番です。 が、久しぶりにWindows 7からUbuntu 16.04 LTSのディレクトリにマウントしようとしたらドハマリしてしまい、その時の解決する方法の話です。 結論から言うと、
でなんとか動きました。 動いたバイナリも共有しときます。→ win-sshfs.zip 動かし方 †Dokan 0.7.4のインストール †https://github.com/dokan-dev/dokany/releases から0.7.4をダウンロードしてインストールします。 Dokan 0.8.0とかDokan 1.0.0-RC3とかも試したのですが、 Can't install the dokan driver とかいうエラーが出てきたり、win-sshfsの方が対応してなかったりでDokan 0.7.4まで下げるはめになりました。 win-sshfs 1.5.12.8の入手 †https://github.com/dimov-cz/win-sshfs/releases/ から1.5.12.8をダウンロードします。 win-sshfs 1.6.0 RC2も試したりしたのですが、Dokanとの相性が悪く1.5.12.8に下げました。 bugfix版のRenci.SshNet.dllを入手 †たいていのサーバは↑までの手順で動くと思います。 が、僕はもう1つはまりポイントがありました。 あるサーバのディレクトリをマウントしようとした時だけ xxx could not connect: An established connection was aborted by the server. となってサーバから切られてしまうのです。 サーバ側の方のログには fatal: mm_answer_moduli: bad parameters: 2048 2048 1024 と出力されてます。 調べてみたところ、OpenSSHがセキュリティの都合上求める鍵長が長くなってしまったことが原因のようです。 サーバの設定でなんとかならないかと思ったのですが、影響が多岐にわたりすぎそうであきらめました。 原因はRenci.SshNet.dllである様子... Renci.SshNet.dllを自分でコンパイルしてバグを修正しようと思い始めたところで既に先人がバグを修正済みのwin-sshfsを公開していてくれました。 https://www.bountysource.com/issues/32018319-an-established-connection-was-aborted-by-the-server ただ、これはwin-sshfs 1.6.0.7なのです... Dokanのバージョンが合わない。 ダメ元でこのRenci.SshNet.dllをwin-sshfs 1.5.12.8のディレクトリにコピーしてみたところ、無事に起動!長かった... |