FTPソフトは色々ありますが、WindowsでもMacでも無料で使えるFileZillaを使用しています。
最近はセキュリティが厳しく認証鍵でアクセスするようになってきたのですが、そこでKey fileを設定しても接続ができなくてハマったので、その問題点と解決方法を記載しておきます。
原因を探る
鍵は正しく生成し、サーバーにもちゃんと設定してSSHでのログインも問題なしだったのでなんで接続できないのか不思議でした。
WinSCPというFTPソフトで接続すると正しく接続できたのでFileZillaが認証鍵の設定あるけど正しく動作しないんじゃないか?と思って色々と調べてみたら同じようにハマっている人のブログを発見することができました。
参考サイト:FileZillaで公開鍵認証を使ったSSH(SFTP)接続でエラーが発生する。
このサイトを元に自分でも詳しく検証し解決できるかを試してみました。
パス名に日本語が入っているとダメ
接続できない場合のコンソールログが下記のようになります。
状態: example.com に接続中... レスポンス: fzSftp started, protocol_version=4 コマンド: keyfile "D:\取引先\SSH\ssh_key.ppk" コマンド: open "example@example.com" 22 エラー: Disconnected: No supported authentication methods available (server sent: publickey,gssapi-with-mic) エラー: サーバに接続できませんでした
No supported authentication methods available
サポートされていないって言われても納得できないですよね。
TeratermやWinSCPでは正しく接続できているんですから・・・
参考サイトを元に見ていくと、3行目の「コマンド:keyfile」の指定しているパスに日本語が入っています。
このパスを半角英数字の名前に変えてあげることによって接続が正しくできるようになります。
# ここの「取引先」というフォルダ名を D:\取引先\SSH\ssh_key.ppk ↓ # 「Company」に名前変更する D:\Company\SSH\ssh_key.ppk
さいごに
FileZillaは日本語化されているし、まさか日本語がパスに入っているとダメとは思いもしませんでした。
linuxでは日本語は絶対使わないのが技術者としては当然ですが、WindowsやMacで徹底している人は少ないのではないでしょうか。
フォルダ名はお客様の会社名などにしている場合が多いと思いますので注意が必要です。
今までのファイル管理方法から変えないといけなくなるので嫌になりますがFileZillaを使い続けるのであれば変更しないといけないです。
他にもっと良いFTPクライアントあれば乗り換えようかな…