タイトル: 認証に失敗しました。再試行してください。
SEOタイトル: SSH 認証に失敗しました。再試行してください の対処
| この記事の要点 |
|---|
|
エラー内容
| 認証に失敗しました。再試行してください。 |
WinSCPやTera Termなど、日本語化されたSSHクライアントから接続したときに出る認証エラーです。最も多いのはユーザー名/パスフレーズの取り違えですが、それ以外にも複数の原因が考えられます。
発生条件と原因
- ユーザー名とパスワード(パスフレーズ)の組み合わせが違う — 最頻出
- サーバーがパスワード認証を許可していない — 鍵認証のみ許可される設定
- ユーザーがロックされている — 連続失敗で fail2ban やアカウントロックに掛かった
- パスワードの有効期限切れ — 期限切れになると認証は通っても利用できない
- 鍵認証で鍵が読まれていない — 鍵指定を忘れた/パーミッションが緩い/対応する公開鍵が
authorized_keysに無い - 大文字小文字の取り違え — Linuxはユーザー名・パスワードどちらも大文字小文字を区別する
対処法
1. ユーザー名とパスワードを確認
サーバー管理者から共有された認証情報を使い、メモ帳などに一度貼り付けてから入力すると入力ミスを防げます。IMEがONになっていないかも確認。
2. パスワード認証が許可されているか確認
サーバー側で /etc/ssh/sshd_config を確認します。
| PasswordAuthentication yes |
これが no になっている場合、パスワード認証は不可で鍵認証のみが受け付けられます。
3. アカウントがロックされていないか確認
サーバー側で確認します。
| $ sudo passwd -S ユーザー名 $ sudo fail2ban-client status sshd |
4. 鍵認証の場合の確認
鍵指定で接続しているのに失敗するときは、次を順に確認します。
- クライアント側で正しい鍵ファイルが指定されているか
- クライアント側で
chmod 600 ~/.ssh/id_rsaなど権限が適切か - サーバー側
~/.ssh/authorized_keysに対応する公開鍵があるか - サーバー側
~/.sshが700、authorized_keysが600か
5. 認証ログで原因を特定
サーバー側で認証ログを見ると、拒否された理由が記録されています。
| # Debian/Ubuntu系 $ sudo tail -f /var/log/auth.log # RHEL/CentOS系 $ sudo tail -f /var/log/secure |
注意点
- 連続して失敗すると fail2ban で一時的にIP遮断される場合がある。少し時間をおく、または別IPから試す
- root直接ログインを禁止している環境では
PermitRootLogin noが原因のことがある - ポート番号を変更している場合は、ポート指定(
-p ポート番号)が正しいかも確認する