Exhausted available authentication methods. Please contact your web hosting service provider for assistance. Please contact your web hosting service
MacのCyberduckでSFTP接続すると上記のエラーが表示された。
コンソールからSSH接続すると正常にログインができる。
Agenda
原因
ケース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