VPSや自宅サーバーを使い始めると、ほぼ必ず出てくる言葉が「SSH」です。
SSHは、ネットワーク越しに別のコンピューターへ安全に接続し、コマンドを実行するための仕組みです。
サーバー管理では非常によく使うため、VPSをこれから触るなら最初に理解しておきたい基本技術のひとつです。
この記事では、SSHとは何か、どんな場面で使うのか、公開鍵認証とは何か、初心者がつまずきやすいポイントまで、実体験を交えて分かりやすく解説します。
そもそもVPS自体がよく分からない場合は、先に以下の記事を読むと全体像がつかみやすいです。
SSHとは?
SSHは「Secure Shell」の略で、ネットワーク越しに別のコンピューターへ安全に接続するための仕組みです。
たとえば、自分のWindowsパソコンからインターネット上にあるUbuntuサーバーへ接続し、Linuxコマンドを実行できます。
自分のPC
│
│ SSH
▼
VPS / 自宅サーバー
実際の操作としては、サーバー本体の前に座ってキーボードからコマンドを入力するのと似ています。
違うのは、それをネットワーク越しに行う点です。
ちーの実体験:昔はモニターケーブルを差し替えていました
私が最初にVine Linuxで自宅サーバーを動かしていた頃は、古いパソコンへLinuxをインストールして使っていました。
モニターは1台しかなく、CPU切替器を買うのももったいなかったため、サーバーを操作するときはモニターケーブルを手で差し替えて直接コマンドを入力していました。
キーボードとマウスは余っていたので、「まあこれでいいか」という感じです。
その後SSHを知り、別のPCからサーバーを操作できるようになって、「サーバーの前まで行かなくてもいい」という便利さを実感しました。
SSHを使うと何ができる?
SSHを使うと、サーバーへログインしてさまざまな操作ができます。
- Linuxコマンドを実行する
- ファイルを作成・編集する
- ApacheやPHPの設定を変更する
- サービスを起動・停止・再起動する
- ログを確認する
- ソフトウェアをインストールする
- WordPressサーバーを管理する
- ファイルを安全に転送する
VPSを自分で管理する場合、SSHは日常的に使うことになります。
ConoHaの管理画面とSSHは何が違う?
初心者のうちは、「ConoHaの管理画面からサーバーを操作できるなら、SSHは必要ないのでは?」と思うかもしれません。
役割は少し違います。
| 操作方法 | 主な役割 |
|---|---|
| ConoHa管理画面 | VPSの作成・削除・再起動・ネットワーク設定など |
| SSH | VPS内のUbuntuやLinuxを操作する |
つまり、ConoHaの管理画面は「サーバーそのもの」を管理し、SSHは「サーバーの中のOS」を操作するイメージです。
SSHはなぜ安全なの?
SSHでは、通信内容が暗号化されます。
ユーザー名やパスワード、実行したコマンド、送受信したデータなどが、そのまま平文で流れるわけではありません。
また、SSHでは接続先や接続ユーザーを確認し、認証に成功した場合だけログインできます。
その認証方法として代表的なのが、以下の2つです。
- パスワード認証
- 公開鍵認証
パスワード認証と公開鍵認証の違い
| 比較項目 | パスワード認証 | 公開鍵認証 |
|---|---|---|
| 認証方法 | パスワード | 公開鍵と秘密鍵 |
| 導入の手軽さ | 簡単 | 最初に鍵の準備が必要 |
| 総当たり攻撃への強さ | パスワード次第 | 比較的強い |
| 秘密情報 | パスワード | 秘密鍵 |
| VPS運用 | 使用可能 | おすすめ |
VPSを運用するなら、私は公開鍵認証をおすすめしています。
ただし、秘密鍵をなくしたり他人へ渡したりすると問題になるため、鍵の管理は重要です。
SSH鍵とは?
SSHの公開鍵認証では、「公開鍵」と「秘密鍵」という2つの鍵を使います。
ざっくり言えば、公開鍵をサーバーへ登録し、秘密鍵を自分のPCで管理します。
サーバー側:公開鍵
PC側 :秘密鍵
この2つが正しく対応している場合にログインできます。
ConoHa VPSでは、管理画面からSSH鍵を作成することもできます。
公開鍵と秘密鍵そのものの仕組みについては、今後別記事でも詳しく解説する予定です。
SSHでは実際にどうやって接続する?
現在のWindowsでは、コマンドプロンプトやPowerShell、Windows TerminalなどからSSH接続できます。
基本的な書式は以下です。
ssh ユーザー名@サーバーのIPアドレス
例です。
ssh ubuntu@192.0.2.10
秘密鍵を明示的に指定する場合は、-i オプションを使います。
ssh -i 秘密鍵ファイル ユーザー名@サーバーIPアドレス
ちーの実体験:昔はTera Term、今はWindows標準SSH
SSHを使い始めた頃はTera Termを利用していました。
現在はWindowsのコマンドラインからそのままSSH接続しています。
秘密鍵も標準的な場所へ保存しているため、普段は特別なSSHソフトを意識することもほとんどありません。
昔と比べると、WindowsからLinuxサーバーへSSH接続するハードルはかなり低くなったと感じます。
SSHのポート番号22とは?
SSHでは、標準でTCPの22番ポートが使われます。
サーバーへSSH接続する場合、ネットワーク側で22番ポートへの通信が許可されている必要があります。
自宅サーバーの場合は、Ubuntu側のファイアウォールだけでなく、ルーター側のポート開放が必要になることもあります。
VPSでは、OS側のファイアウォールやVPS事業者側のセキュリティ設定を確認します。
SSHでよく出るエラー
SSH接続では、原因によって表示されるエラーが変わります。
Permission denied
認証に失敗したときによく出るエラーです。
ユーザー名、パスワード、公開鍵、秘密鍵、ファイル権限などを確認します。
Connection refused
接続先まで到達しているものの、SSHサービスが待ち受けていない場合などに表示されます。
sshdが停止している、ポート番号が違う、ファイアウォール設定に問題があるなどの可能性があります。
Connection timed out
接続先から応答がない場合に表示されます。
IPアドレス、ネットワーク、ファイアウォール、VPS側の設定などを確認します。
REMOTE HOST IDENTIFICATION HAS CHANGED!
以前接続したサーバーと、現在のSSHホスト鍵が異なる場合に表示される警告です。
VPSを再構築した場合などにも表示されることがありますが、第三者によるなりすましの可能性もあるため、理由を確認せずに無視するのはおすすめしません。
SSH設定を変更するときは今の接続を切らない
SSH関連の設定を変更するときは、特に慎重に作業してください。
ちーの失敗談:SSHの設定をSSHで壊しました
SSHを覚えてからはTera Termを使い、外部から自宅サーバーへ接続するようになりました。
当時は会社のPCから自宅サーバーへSSH接続することもできたため、会社からSSH周りの設定を変更していたことがあります。
ところが、そこで設定をミスしてしまい、外部からSSH接続できなくなりました。
当然、接続できないSSHを使って設定を元に戻すこともできません。
結局、自宅へ帰ってから再びモニターをサーバーへ接続し、サーバー本体のシェルから設定を修正することになりました。
この経験から、SSH設定を変更するときは現在の接続をすぐ閉じないことをおすすめします。
たとえば以下のように進めます。
- 現在のSSHセッションを残したまま設定変更
- 設定ファイルの構文を確認
- SSHサービスへ設定を反映
- 別のターミナルから新規接続を試す
- 新しい接続に成功してから古いセッションを閉じる
これなら、新規接続に失敗しても既存セッションから設定を戻せる可能性があります。
SSHを安全に使うための基本
SSHは安全な仕組みですが、設定や運用方法が重要です。
最低限、以下は意識しておくとよいでしょう。
- 公開鍵認証を使う
- 秘密鍵を他人へ渡さない
- rootユーザーの直接ログインを避ける
- 公開鍵認証を確認してからパスワード認証を無効化する
- OSやOpenSSHを更新する
- ファイアウォールを適切に設定する
- SSH設定変更後は別セッションで接続確認する
Ubuntu 26.04で公開鍵認証やrootログイン禁止まで設定する手順は、以下の記事でまとめています。
Ubuntu 26.04でSSHの初期設定を行う方法はこちら
昔はSSHの日本語文字化けに悩んだことも
SSHそのものとは少し話がそれますが、昔は文字コードや日本語環境の違いで文字化けに悩むこともありました。
Ubuntuのどの世代だったかまでは覚えていませんが、サーバー本体の画面では日本語が表示できるのに、SSH経由では文字化けする、といった問題を経験したことがあります。
その頃は英語環境を使うようにしていました。
現在の環境では以前ほど日本語表示を意識することはなく、日本語版Ubuntuでも大きな違和感なくSSHを利用できています。
VPS初心者はSSHから覚えると分かりやすい
VPSを使い始める場合、最初からApacheやWordPressの設定を覚えようとすると分からないことが一気に増えます。
まずは以下の順番で覚えていくのがおすすめです。
VPSとは?
↓
SSHとは? ← 今ここ
↓
SSH鍵
↓
Ubuntu初期設定
↓
Apache / PHP
↓
MariaDB
↓
WordPress
ConoHa VPSでSSH鍵を作る場合はこちらです。
Ubuntu 26.04 Serverをこれから構築する場合はこちらへ進んでください。
Ubuntu 26.04 ServerをConoHa VPSにインストールして初期設定する方法
まとめ
SSHは、ネットワーク越しに別のコンピューターへ安全に接続し、操作するための仕組みです。
- SSHはSecure Shellの略
- 通信内容は暗号化される
- VPSや自宅サーバーの遠隔管理で使われる
- 標準ポートは22番
- パスワード認証と公開鍵認証がある
- VPSでは公開鍵認証がおすすめ
- SSH設定変更時は接続できなくなるリスクに注意する
昔の私は、サーバーを操作するたびにモニターケーブルを差し替えていました。
SSHを覚えてからは、別のPCから同じようにLinuxを操作できるようになり、サーバー管理が一気に楽になりました。
一方で、SSHはサーバーへ接続するための重要な入口でもあります。
仕組みを理解したら、次はSSH鍵を準備し、公開鍵認証で安全に接続できる環境を作ってみてください。