VPSのSSH接続方法とエラー解決|Windows・Mac対応

VPSへのSSH接続をWindows・Mac別に解説し、timeout、refused、Permission denied、ホスト鍵警告の原因と対処を整理します。
SSHは、手元のPCからLinux VPSを安全に操作するための仕組みです。接続できないときは、コマンドを何度も変えるより「VPSの起動」「IPとポート」「ネットワーク」「SSHサービス」「認証」の順で切り分けると早く解決できます。
本記事ではWindows PowerShell、macOS、LinuxのOpenSSHを想定します。秘密鍵の内容をチャット、メール、スクリーンショットへ載せないでください。
SSH接続に必要な4つの情報
- VPSのIPアドレスまたはホスト名
- ログインユーザー名
- SSHポート番号(通常は22)
- パスワードまたは秘密鍵の保存場所
初期ユーザー名はroot、ubuntuなど事業者とOSイメージで異なります。申込み完了メールや管理画面で確認します。
WindowsからSSH接続する
PowerShellまたはWindows Terminalを開き、次のように入力します。
ssh username@203.0.113.10秘密鍵を指定する場合は-iを使います。
ssh -i "C:\Users\user\.ssh\vps_ed25519" username@203.0.113.10ポートが22以外なら-pを加えます。
ssh -p 2222 -i "C:\Users\user\.ssh\vps_ed25519" username@203.0.113.10初回のフィンガープリントは、管理画面や別経路で確認してから承認します。
Mac・LinuxからSSH接続する
ターミナルで基本形は同じです。
ssh username@203.0.113.10秘密鍵の権限が広すぎると拒否されるため、必要に応じて修正します。
chmod 600 ~/.ssh/vps_ed25519
ssh -i ~/.ssh/vps_ed25519 username@203.0.113.10接続できないときの共通確認
まずVPS管理画面で、サーバーが起動中か、IPが変わっていないか確認します。次に、自宅回線や会社ネットワークがSSHを遮断していないかを別回線で試します。ブラウザコンソールへ入れるなら、VPS内部で次を確認します。
sudo systemctl status ssh
sudo ss -tlnp | grep ssh
sudo ufw status numberedログはUbuntuなら次のように調べます。
sudo journalctl -u ssh --since "30 minutes ago"Connection timed outの原因
タイムアウトは、接続先まで通信が届いていない可能性が高いエラーです。
- IPアドレスまたはポートが違う
- VPSが停止している
- 事業者側のパケットフィルターが拒否している
- UFWでSSHを許可していない
- 自宅・社内ネットワークが22番ポートを遮断している
SSHポートを変更した直後なら、旧ポートと新ポートの両方を一時許可し、新ポートで接続確認後に旧ルールを閉じます。
Connection refusedの原因
接続先から拒否された場合は、IPへ到達しているものの、そのポートでSSHが待ち受けていない可能性があります。
sudo systemctl restart ssh
sudo systemctl status ssh
sudo sshd -tsshd -tで設定エラーを確認してから再起動します。設定ファイルを編集した直後は、構文エラーやポート番号の不一致を疑います。
Permission deniedの原因
Permission denied (publickey)は認証に失敗しています。
- ユーザー名が違う
- 別の秘密鍵を指定している
- 公開鍵が対象ユーザーの
authorized_keysにない .sshやauthorized_keysの所有者・権限が違う- サーバー側で選んだ認証方式が無効
ブラウザコンソールから次を確認します。
ls -ld ~/.ssh
ls -l ~/.ssh/authorized_keys対象ユーザーのホームディレクトリを見ているかも確認してください。
ホスト鍵が変わったという警告
OS再インストールやIP再利用の後は、REMOTE HOST IDENTIFICATION HAS CHANGEDと表示されることがあります。まず、第三者によるなりすましではなく、自分が再構築したVPSであることを管理画面から確認します。そのうえで該当ホストの古い記録を削除します。
ssh-keygen -R 203.0.113.10確認せずにknown_hosts全体を削除すると、ほかの接続先の検証情報まで失います。
ssh configで接続を簡単にする
毎回長いコマンドを入力する代わりに、手元の~/.ssh/configへ登録できます。
Host my-vps
HostName 203.0.113.10
User username
Port 22
IdentityFile ~/.ssh/vps_ed25519以後はssh my-vpsで接続できます。秘密鍵そのものではなく、ファイルの場所を指定します。
SSH設定を安全に変更する順番
- 新しい一般ユーザーを作る
- 公開鍵を登録する
- 別ウィンドウで鍵認証を確認する
- ブラウザコンソールを開けることを確認する
- パスワード認証・rootログインの制限を適用する
- 現在の接続を残したまま再接続を試す
一度に複数項目を変えると原因を特定しにくくなります。変更ごとに接続を検証してください。
まとめ
SSHエラーは、起動状態、IP・ポート、ファイアウォール、SSHサービス、認証の順に切り分けます。秘密鍵を再発行する前に、ユーザー名と権限、サーバーログを確認するのが近道です。接続後はUbuntu VPSの初期設定とセキュリティ初期設定を進めてください。