NetDriveのSFTP認証エラーを解決 — 鍵・パスワード・ポート

読了目安 7 分 troubleshooting sftp
Tayson
TaysonSenior Engineer
NetDriveのSFTP認証エラーを解決:SSH鍵形式の問題、ポート設定の誤り、ホスト鍵検証の失敗、Windows/macOSでのパスワード拒否への対処法。

NetDriveでSFTP接続を追加し、Connectをクリックしたら認証エラーになった、あるいは30秒後にドライブが無言でタイムアウトした——SFTP認証の失敗は、LinuxサーバーやNAS機器、共有ホスティングアカウントをマウントする際に最もよくつまずくポイントです。ほぼすべてのケースは、次の3つの根本原因のいずれかに行き着きます。認証情報やホスト設定の誤り、SSH鍵の形式不一致、古くなったホスト鍵キャッシュのエントリです。

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

任意のSFTPサーバーをネイティブドライブとしてマウント

NetDrive を使えば Google Drive、OneDrive、S3、SFTP、WebDAV などが Windows と macOS でネイティブドライブとして表示されます — 同期も、まるごとダウンロードも不要です。

  • パスワード認証とSSH鍵認証の両方に対応
  • Linuxサーバー、Synology/QNAP NAS、ホスティングアカウントに対応
  • WindowsとmacOSで利用可能
WindowsmacOS
NetDriveをダウンロード →

無料トライアル。永久ライセンスとサブスクリプションプランあり。

症状から原因を特定する

設定を触る前に、まずどの症状に当てはまるかを確認してください。

症状最も可能性の高い原因
即座に「Authentication failed」となるユーザー名、パスワードが誤っているか、鍵が受理されていない
30〜60秒ハングしてからタイムアウトするホスト名またはポートの誤り。ファイアウォールがポート22をブロックしている
「Host key verification failed」このホストへの初回接続、またはサーバーのフィンガープリントが変わった
マウント直後に切断されるサーバー側のアイドルタイムアウト、またはネットワークの不安定さ

本記事では最初の3つを扱います。アイドル状態でマウントが切断される場合は、macOSスリープ後のマウント切断を修正するで紹介しているキープアライブのパターンがSFTPにも適用できます。

対処1:認証情報とホスト設定を確認する

NetDriveのDrive Managerを開き、対象のSFTPドライブを選んでEditをクリックします。各項目を注意深く確認してください。

  • Host — サーバーのホスト名またはIPアドレス。sftp://のようなプレフィックスは不要です。NetDriveがプロトコルを自動的に付加します。末尾にスラッシュがあると名前解決が失敗します。
  • Port — SFTPのデフォルトは22です。サーバー管理者がSSHを標準以外のポートに変更している場合(よくあるセキュリティ強化策です)、明示的に入力してください。サーバーが2222番で待ち受けているのに22番へ接続すると、「authentication failed」ではなくタイムアウトになるため、見落とされがちです。
  • Username — 大文字小文字が区別されます。LinuxシステムではAdminadminは別アカウントです。
  • Password — 入力欄が埋まっているように見えても、再入力してください。サーバー側でパスワードが変更されると、保存済みの認証情報が気づかないうちに無効になることがあります。

現在の接続状態とドライブの健全性を示すNetDriveのマウントステータスパネル

項目を更新したら、保存するだけでなくConnectをクリックしてください。NetDriveは保存時ではなく、実際の接続試行時にのみ認証情報を検証します。

NetDriveで接続する前にSFTPサーバーのIPアドレスを確認する

対処2:SSH鍵の形式問題

SSH鍵認証はパスワードよりも安全ですが、NetDriveでは秘密鍵がPEM形式である必要があります——-----BEGIN RSA PRIVATE KEY-----で始まるRSA鍵、または-----BEGIN EC PRIVATE KEY-----で始まるECDSA鍵です。最近のOpenSSHはデフォルトで新しい形式(-----BEGIN OPENSSH PRIVATE KEY-----)の鍵を生成しますが、これはNetDriveでは受理されません。

鍵が生成されたマシン上で、OpenSSH形式の鍵をPEMに変換するには次のようにします。

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

これは秘密鍵ファイルをその場で書き換えます。実行前に必ずバックアップを取ってください。

NetDriveのSFTPドライブ設定では、

  1. Auth typePasswordではなくKeyに設定します。
  2. Private key fileで、ローカルマシン上の.pem秘密鍵ファイルを参照します。
  3. 鍵にパスフレーズが設定されている場合は、Key passphraseに入力します。
  4. 対応する公開鍵がリモートサーバーの~/.ssh/authorized_keysにすでに登録されていることを確認します。

サーバー側の簡易チェックとして、ターミナルからssh -v user@hostnameを実行すると、サーバーが提供している認証方式と受理する鍵がわかります。Offering public keyServer accepts keyという行があれば、NetDriveを介さずに鍵の対応関係が正しいことを確認できます。

対処3:古くなったホスト鍵検証

NetDriveがSFTPホストに初めて接続する場合、あるいはハードウェア交換やOSの再インストール、IPアドレスの再利用によってサーバーのSSHフィンガープリントが変わった場合、ホスト鍵エラーで接続を拒否することがあります。

NetDriveは受理済みのホスト鍵を内部のknown-hostsキャッシュに保存しています。古いエントリをクリアするには、

  1. Drive ManagerでSFTPドライブを選択し、Editを開きます。
  2. 詳細設定パネルにあるClear known hostsまたはReset host keyオプションを探します。
  3. 再接続します。NetDriveが新しいフィンガープリントを承認するよう促します。

変更されたフィンガープリントを承認する前に、すでにサーバーへSSHアクセスできるマシンからssh-keyscan -t rsa hostnameを実行し、独立して検証したうえで、NetDriveが表示する内容と比較してください。本番サーバーで予期しないフィンガープリントを承認することは、重大なセキュリティリスクになります。

NetDriveで接続する前にSFTPサーバーのポート番号を確認する

まとめ

NetDriveのSFTP認証失敗は、ほぼ常にNetDrive自体ではなく、認証情報、鍵の形式、ホスト設定のいずれかに起因します。認証情報、鍵の形式、ホスト鍵キャッシュの順に3つの対処を試せば、数分で原因を特定できます。どれでも解決しない場合は、NetDriveの環境設定で詳細ログを有効にし、support.bdrive.comにログを投稿してさらなる診断を依頼してください。

関連記事:WebDAV SynologyのConnectionエラーを修正するNetDriveのS3アクセス拒否エラーを修正する

— Tayson, NetDrive