そもそもSSHとは?
SSHは「Secure Shell」の略で、1995年に発表され、現在はOpenSSHという無料の実装が広く使われています。通信の中身を暗号化するため、途中の経路で盗み見られても内容が読めません。Linux・Mac・Windows 11など、現在の主要OSでは標準でsshコマンドが使えます。
使い方はssh ユーザー名@サーバーのアドレスと打つだけ。例えばssh student@example.comと打つと、example.comというサーバーに「student」というユーザーでログインしようとします。成功すれば、目の前のターミナルが、そのままサーバーのターミナルとして使えるようになります。
SSH接続の仕組み
SSHでは接続時に「サーバーが本物か」「あなたが本人か」を両側で確認します。最初の接続では「このサーバーを信頼するか?」と聞かれ、yesと答えると以後はそのサーバーが固有のIDを持っているように振る舞います。これによって、似た名前の偽サーバーに誘導される攻撃を防げます。
パスワード認証と鍵認証
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や仮想マシンに接続するところから始めると安全です。接続できたら whoami、pwd、ls を打ち、今操作しているのが手元のPCではなくリモート側だと確認します。この区別を意識しないと、思わぬ場所のファイルを編集してしまいます。
気をつけたい落とし穴
- 秘密鍵(id_rsa)は他人に渡さない・公開しない。漏れたらサーバーが乗っ取られます
- パスワード認証のサーバーは、22番ポートに1日数千回の攻撃が来ます。鍵認証への切り替えは早めに
- SSHログイン後の操作はサーバー上のファイルに直接効きます。
rmで消したファイルは戻りません
将来どう役立つ?
SSHはWebエンジニア・インフラエンジニア・データサイエンティスト全員が日常的に使うツールです。クラウドサーバーへのデプロイ、機械学習モデルの学習実行、リモート開発、すべてSSH越しに行います。中高生のうちに鍵認証まで使えるようになっていると、就職時に「即戦力」として扱われやすくなります。
SSHを学ぶと、ネットワーク越しにコンピュータを安全に操作する感覚が身につきます。これはクラウド、研究室の計算サーバー、学校の共有サーバー、リモート開発のどれにもつながります。秘密鍵を人に渡さない、接続先を確認する、不要なサーバーを閉じるという安全習慣も同時に覚えましょう。
今日からできること
- ターミナルで
ssh-keygenを実行し、SSH鍵ペアを作成する(パスフレーズは設定推奨) - クラウド(AWS Lightsail、Oracle Cloud Free Tierなど)の無料サーバーを保護者と一緒に契約する
- 公開鍵をサーバーに登録し、
ssh ユーザー名@IPで接続できるか試す
まとめ
ssh ユーザー名@アドレスのコマンド1行で接続でき、通信は暗号化されているので途中で盗み見られても内容が読めません。本番では公開鍵認証に切り替えるのが基本で、秘密鍵は他人に見せないこと。クラウドサーバーやRaspberry Piで練習すれば、ITの現場感が一気に近づきます。