概要

WindowsからLinux上のディレクトリをsshでマウントするとしたら使うのはsshfsとdokanというのが昔からの定番です。 が、久しぶりにWindows 7からUbuntu 16.04 LTSのディレクトリにマウントしようとしたらドハマリしてしまい、その時の解決する方法の話です。

結論から言うと、

  • win-sshfs 1.5.12.8
  • Dokan 0.7.4
  • Renci.SshNet.dllをパクってきたやつに置き換え

でなんとか動きました。

動いたバイナリも共有しときます。→ filewin-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のディレクトリにコピーしてみたところ、無事に起動!長かった...


添付ファイル: filewin-sshfs.zip 310件 [詳細]

  添付編集
Last-modified: 2016-07-08 (金) 23:21:19 (467d)