CyberduckでSFTP接続するとExhausted available authentication methods.

Exhausted available authentication methods. Please contact your web hosting service provider for assistance. Please contact your web hosting service

MacのCyberduckでSFTP接続すると上記のエラーが表示された。
コンソールからSSH接続すると正常にログインができる。

原因

ケース1

キーチェーンの認証ミス。キーチェーンに同一URLに対して、複数のアカウントのパスワードをキーチェーンに登録していたため、異なるアカウントが先に認証が走ってしまっていた。
「# cat /var/log/secure」にログが載ってこなかったのでおかしいとは思った。

ケース2

キーチェーンに誤ったパスフレーズを登録してしまっていて、それが原因で接続できない(厳密にはパスフレーズが誤り)。

ケース3

鍵ファイルの参照ミス。鍵ファイルの場所を移動したことに気づかずにSFTP接続してしまっていた。デフォルトの挙動として、もし鍵ファイルがなかった場合、 ~/.ssh/id_rsa が利用されるっぽい。これを参照してしまっていた。

対応

ケース1,2

キーチェーンに登録したパスフレーズを削除(自分の場合は、xx.xx.xx.xxというサーバIPに対して、Aアカウント、Bアカウントと2つキーチェーンに登録していたため、それら2つを削除)して再接続したら直った。
キーチェーンは、Macの ユーティリティ > キーチェーンアクセス.app で該当するURLやIPアドレスを選択して削除すればOK。
GitHubのSSH接続の時も誤ったパスフレーズ登録&複数アカウント登録していて、それに気づかずにハマった。SSHのパスフレーズやアカウントパスワードがどうやっても正しい場合は、キーチェーンを削除(同一URLが複数あった場合は全て削除)してみると改善するかもしれない。

ケース3

正しい鍵ファイルを参照するようにする。念のため、以下のようにちゃんと存在確認するのがよい。

$ vi ~/.ssh/kusanagi-Sakura-WP

なお、パスフレーズがあっているかどうかは、以下で確認可能。パスフレーズがあっていると、中身が表示される。

$ ssh-keygen -yf ~/.ssh/kusanagi-Sakura-WP