SSH接続のやり方

SSHは、ネット越しに別のPCやサーバーへ安全にログインして操作するための仕組みです。クラウドのサーバーをレンタルしたり、自宅のPCを外出先から操作したりするときに必ず使います。仕組みは難しそうに見えて、コマンド1行で接続できるシンプルなツールです。

そもそもSSHとは?

SSHは「Secure Shell」の略で、1995年に発表され、現在はOpenSSHという無料の実装が広く使われています。通信の中身を暗号化するため、途中の経路で盗み見られても内容が読めません。Linux・Mac・Windows 11など、現在の主要OSでは標準でsshコマンドが使えます。

使い方はssh ユーザー名@サーバーのアドレスと打つだけ。例えばssh student@example.comと打つと、example.comというサーバーに「student」というユーザーでログインしようとします。成功すれば、目の前のターミナルが、そのままサーバーのターミナルとして使えるようになります。

SSH接続の仕組み

SSH初回接続のターミナル実例(クラウドサーバーへ) コマンド1行でつながる。1回目だけ接続先を信頼するか聞かれる student@laptop:~$ ssh ubuntu@203.0.113.42 ↑ ユーザー名@サーバーIPでログイン要求 The authenticity of host '203.0.113.42' can't be established. ECDSA key fingerprint is SHA256:abc123... Are you sure you want to continue connecting (yes/no)? yes ↑ 初回のみ。サーバーの指紋を信頼するか確認 ubuntu@203.0.113.42's password: ●●●●●●●●●● ↑ パスワードを入力(画面には表示されない) Welcome to Ubuntu 24.04 LTS ubuntu@cloud-server:~$ _ ↑ プロンプトがサーバー名に変わる=ログイン成功
図1:sshコマンド1行で遠くのサーバーが目の前のターミナルに。通信はすべて暗号化される

SSHでは接続時に「サーバーが本物か」「あなたが本人か」を両側で確認します。最初の接続では「このサーバーを信頼するか?」と聞かれ、yesと答えると以後はそのサーバーが固有のIDを持っているように振る舞います。これによって、似た名前の偽サーバーに誘導される攻撃を防げます。

パスワード認証と鍵認証

パスワード認証 vs 公開鍵認証(攻撃への耐性) クラウドサーバーには毎日数千回の総当たり攻撃が来る。鍵認証なら原理的に破れない 仕組み 突破に必要な試行回数 利便性 🔑 パスワード認証 サーバーに保存された8〜12文字のパスワードと照合 8桁英数:60兆回 → 1日で突破される例も 毎回入力 手軽だが危険 🔐 公開鍵認証(推奨) 秘密鍵(手元)と公開鍵(サーバー)のペアで暗号認証 RSA 2048bit:実質不可能 → スパコンでも数百兆年 パスワードなし 最初の設定だけ 本番のサーバーは必ず公開鍵認証に切り替える(パスワード認証は無効化)
図2:鍵認証は突破に「数百兆年」必要。本番サーバーは必ず鍵認証に切り替える

SSHには「パスワードで認証する方法」と「鍵ペアで認証する方法」の2つがあります。鍵ペア方式は、自分のPCに「秘密鍵」、サーバーに「公開鍵」を置いておく仕組みで、どちらか片方では役に立たない仕組みになっています。パスワード総当たり攻撃に強いため、公開サーバーでは鍵認証がよく使われます。

鍵作成はssh-keygenコマンドで一発です。作成された~/.ssh/id_rsa.pub(公開鍵)の中身をサーバーの~/.ssh/authorized_keysに追加すれば、次回からパスワード入力なしでログインできるようになります。

中高生におすすめの使い方

クラウドの無料枠や低価格プランでサーバーを借り、SSHで接続して練習すると実務に近い体験ができます。ただし、料金や無料条件は変わるため、公式情報を確認し、請求アラートを設定してから使いましょう。Raspberry Piを家のWi-Fiに繋いでSSHで操作するのもおすすめです。

VS Code(無料エディタ)の「Remote - SSH」拡張機能を使うと、サーバー上のファイルを手元のVS Codeで直接編集できます。中高生がリモート開発の感覚を掴むのに最適なツールです。

練習では、まず自分のPCから自分のRaspberry Piや仮想マシンに接続するところから始めると安全です。接続できたら whoamipwdls を打ち、今操作しているのが手元のPCではなくリモート側だと確認します。この区別を意識しないと、思わぬ場所のファイルを編集してしまいます。

気をつけたい落とし穴

SSH利用時の注意点
  • 秘密鍵(id_rsa)は他人に渡さない・公開しない。漏れたらサーバーが乗っ取られます
  • パスワード認証のサーバーは、22番ポートに1日数千回の攻撃が来ます。鍵認証への切り替えは早めに
  • SSHログイン後の操作はサーバー上のファイルに直接効きます。rmで消したファイルは戻りません

将来どう役立つ?

SSHはWebエンジニア・インフラエンジニア・データサイエンティスト全員が日常的に使うツールです。クラウドサーバーへのデプロイ、機械学習モデルの学習実行、リモート開発、すべてSSH越しに行います。中高生のうちに鍵認証まで使えるようになっていると、就職時に「即戦力」として扱われやすくなります。

SSHを学ぶと、ネットワーク越しにコンピュータを安全に操作する感覚が身につきます。これはクラウド、研究室の計算サーバー、学校の共有サーバー、リモート開発のどれにもつながります。秘密鍵を人に渡さない、接続先を確認する、不要なサーバーを閉じるという安全習慣も同時に覚えましょう。

今日からできること

3ステップで始めよう
  1. ターミナルでssh-keygenを実行し、SSH鍵ペアを作成する(パスフレーズは設定推奨)
  2. クラウド(AWS Lightsail、Oracle Cloud Free Tierなど)の無料サーバーを保護者と一緒に契約する
  3. 公開鍵をサーバーに登録し、ssh ユーザー名@IPで接続できるか試す

まとめ

SSHは「遠くのサーバーに安全にログインして操作する仕組み」です。ssh ユーザー名@アドレスのコマンド1行で接続でき、通信は暗号化されているので途中で盗み見られても内容が読めません。本番では公開鍵認証に切り替えるのが基本で、秘密鍵は他人に見せないこと。クラウドサーバーやRaspberry Piで練習すれば、ITの現場感が一気に近づきます。