Start typing to search across invoices, services, domains, tickets, and more...
SSH に突然つながらなくなるのは、サーバーで最もよくあるトラブルの 1 つです。本記事では Linux の SSH 接続失敗を切り分ける手順として、エラー内容からネットワーク・ポート・sshd サービス・ファイアウォール・fail2ban のどれが原因かを素早く判断し、SSH がまったく使えない場合に VNC コンソールから復旧する方法を紹介します。Debian/Ubuntu、CentOS/Rocky/AlmaLinux の VPS・専用サーバーに対応しています。
エラーごとに疑うべき箇所が異なります。まずはメッセージをよく確認しましょう。
ssh: connect to host 203.0.113.10 port 22: Connection refused
ssh: connect to host 203.0.113.10 port 22: Connection timed out
[email protected]: Permission denied (publickey,password).
kex_exchange_identification: read: Connection reset by peer
手元のパソコンからポートに到達できるか確認し、ssh -vvv で接続過程を詳しく表示します。スマホのテザリングなど別回線からなら接続できる場合は、サーバーではなく手元のネットワークや回線側の問題です。
# Windows PowerShell
Test-NetConnection 203.0.113.10 -Port 22
# macOS / Linux
nc -vz -w 5 203.0.113.10 22
# Verbose SSH client output shows where it fails
ssh -vvv -p 22 [email protected]
SSH が使えないときは、クライアントエリア → 製品とサービス → 対象サーバー → 管理 から VNC コンソールを開きます(製品により名称が異なる場合があります。見つからない場合はチケットでお問い合わせください)。VNC はモニターとキーボードを直接つないだのと同じで、SSH やネットワーク設定に依存しません。root とパスワードでログインし、以下の確認を行います。
# In the VNC console
localhost login: root
Password:
# Then confirm the network is up
ip a
ping -c 3 1.1.1.1
sshd が動作しているか確認します。failed になっている場合は sshd -t で設定ファイルの構文エラーを探して修正し、再起動します。次に ss で実際の待ち受けポートが接続先のポートと一致しているか確認します。
# Debian / Ubuntu (service name: ssh)
systemctl status ssh
# CentOS / Rocky / AlmaLinux (service name: sshd)
systemctl status sshd
sshd -t # config syntax check
systemctl restart sshd # or: systemctl restart ssh
ss -tlnp | grep sshd
# LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812,fd=3))
使用しているファイアウォールのルールを確認し、SSH ポート(22 または変更後のポート)が許可されているか確かめます。SSH ポートを変更したのに許可し忘れるのが、タイムアウトの最も多い原因です。
# firewalld (CentOS / Rocky / AlmaLinux)
firewall-cmd --list-all
firewall-cmd --permanent --add-service=ssh && firewall-cmd --reload
# ufw (Debian / Ubuntu)
ufw status verbose
ufw allow 22/tcp
# Raw rules (iptables / nftables)
iptables -S | head -n 30
nft list ruleset | head -n 50
パスワードを何度も間違えると fail2ban が送信元 IP を自動でブロックし、突然のタイムアウトや拒否として現れます。「IP 確認」サイトで自分のグローバル IP を調べ、サーバーで状態を確認して解除します。
fail2ban-client status sshd
fail2ban-client set sshd unbanip 198.51.100.25
# Also check TCP wrappers on older systems
cat /etc/hosts.deny
ここまで問題がなければ、sshd のログに権限エラー、ログイン禁止ユーザー、鍵形式の誤りなど具体的な理由が記録されていることが多いです。ディスクがいっぱいでもログインに失敗することがあります。
# Recent sshd logs
journalctl -u sshd -n 50 --no-pager # CentOS / Rocky / AlmaLinux
journalctl -u ssh -n 50 --no-pager # Debian / Ubuntu
tail -n 50 /var/log/secure # RHEL family
tail -n 50 /var/log/auth.log # Debian / Ubuntu
# A full disk can also break logins
df -h /
手元に保存された古いフィンガープリントと一致しないためです。手元で ssh-keygen -R サーバーIP を実行して古い記録を削除し、再接続してください。
fail2ban で IP がブロックされているか、手元のネットワークがそのポートを遮断している可能性があります。別回線で試すか、VNC から IP のブロックを解除する、またはポートを変更してください。
製品が対応していればクライアントエリアから再設定できます。または VNC で起動メニューからシングルユーザーモードに入って再設定します。不安な場合はチケットでご相談ください。
上記の手順で解決しない場合は、サポートチケットを送信して IMIDC の 24 時間 365 日テクニカルサポートへお問い合わせください。サーバー IP、OS、実行したコマンド、エラー画面のスクリーンショットを添えていただくと、より迅速に対応できます。