ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Linuxサーバー

Linux に SSH 接続できない時の対処法:Connection refused・タイムアウトの原因と解決

7 ステップ 8 分で読めます 1617 回閲覧 87
目次

SSH に突然つながらなくなるのは、サーバーで最もよくあるトラブルの 1 つです。本記事では Linux の SSH 接続失敗を切り分ける手順として、エラー内容からネットワーク・ポート・sshd サービス・ファイアウォール・fail2ban のどれが原因かを素早く判断し、SSH がまったく使えない場合に VNC コンソールから復旧する方法を紹介します。Debian/Ubuntu、CentOS/Rocky/AlmaLinux の VPS・専用サーバーに対応しています。

ステップ1:SSH のエラーメッセージから原因を絞り込む

エラーごとに疑うべき箇所が異なります。まずはメッセージをよく確認しましょう。

  • Connection refused:サーバーには届いているが、そのポートで待ち受けていない。sshd の停止やポート番号の誤り。
  • Connection timed out:まったく応答がない。IP の誤り、サーバー停止、ファイアウォールでの破棄、IP ブロックなど。
  • Permission denied:通信とサービスは正常。ユーザー名・パスワード・鍵の問題。
  • Connection reset / closed by remote host:fail2ban、hosts.deny、sshd 設定エラーなど。
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

ステップ2:手元から SSH ポートの疎通を確認する

手元のパソコンからポートに到達できるか確認し、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]

ステップ3:VNC コンソールからサーバーにログインする

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

ステップ4:sshd のサービス状態と待ち受けポートを確認する

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))

ステップ5:ファイアウォールで SSH ポートが許可されているか確認する

使用しているファイアウォールのルールを確認し、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

ステップ6:fail2ban で IP がブロックされていないか確認する

パスワードを何度も間違えると 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

ステップ7:SSH のログで原因を特定する

ここまで問題がなければ、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 /
ping が通らず VNC コンソールも開けない・表示がおかしい場合は、サーバー停止やネットワーク障害の可能性があります。すぐにチケットを送信してください。

よくある質問

OS 再インストール後、ホスト鍵が変わったと表示されて接続できません。

手元に保存された古いフィンガープリントと一致しないためです。手元で ssh-keygen -R サーバーIP を実行して古い記録を削除し、再接続してください。

自分のネットワークだけ接続できません。

fail2ban で IP がブロックされているか、手元のネットワークがそのポートを遮断している可能性があります。別回線で試すか、VNC から IP のブロックを解除する、またはポートを変更してください。

VNC ログイン用の root パスワードを忘れました。

製品が対応していればクライアントエリアから再設定できます。または VNC で起動メニューからシングルユーザーモードに入って再設定します。不安な場合はチケットでご相談ください。

上記の手順で解決しない場合は、サポートチケットを送信して IMIDC の 24 時間 365 日テクニカルサポートへお問い合わせください。サーバー IP、OS、実行したコマンド、エラー画面のスクリーンショットを添えていただくと、より迅速に対応できます。

この回答はお役に立ちましたか?

関連チュートリアル