本文へスキップ
BecomeCoder

サーバーコース · 第1章 サーバーとは何か · レッスン3

サーバーに入る ― SSH・端末・シェルの関係

ローカル実施

導入

サーバーには画面がないのに、どうやって操作するのでしょうか。答えは、手元の PC から、ネットワーク越しにサーバーへ「入り込む」 のです。その入り口が SSH、コマンドを打つ窓口が 端末(ターミナル)、コマンドを受け取って実行する係が シェル です。この3つの関係を整理しておきましょう。

説明

遠くにあるサーバーに手元から安全に入るための仕組みが SSH(Secure Shell) です。「暗号化されたトンネル」で自分の PC とサーバーをつなぎ、まるでサーバーの前に座っているかのようにコマンドを打てるようにします。

flowchart LR
    subgraph 手元["あなたの手元のPC"]
      TERM["端末(ターミナル)<br/>コマンドを打つ画面"]
    end
    subgraph 遠く["遠くのサーバー"]
      SHELL["シェル<br/>コマンドを解釈して実行"]
      OS2["Linux 本体"]
    end
    TERM -->|"SSH(暗号化された通信)"| SHELL
    SHELL --> OS2

登場人物を1つずつ見てみましょう。

  • 端末(ターミナル) … コマンドを打ち込み、結果が表示される「窓口の画面」。あなたが直接触る部分です。
  • SSH … その端末とサーバーを、暗号化してつなぐ「通り道」。盗み見されずにサーバーへ届けます。
  • シェル … サーバー側で、あなたが打ったコマンドを受け取り、意味を解釈して実行する「通訳&実行係」。代表的なシェルが bash です。

実際にサーバーへ入るときは、こんなコマンドを打ちます(このコースのシミュレータでは入力済みの状態から始まります)。

ssh user@203.0.113.10

これは「203.0.113.10 というサーバーに、user という名前で入りたい」という意味です。入れると、画面には次のような プロンプト が出ます。

user@becomecoder:~$

このプロンプトは情報の宝庫です。左から「ユーザー名 user」「@」「サーバー名(ホスト名) becomecoder」「今いる場所 ~(ホーム)」「記号 $」。つまり「いま、becomecoder というサーバーに、user として入っていて、ホームディレクトリにいる」と読めます。

user @ becomecoder : ~ $
 │       │          │  └ 一般ユーザーは $ / 管理者(root)は #
 │       │          └─── 今いるディレクトリ(~ はホーム)
 │       └────────────── サーバーの名前(ホスト名)
 └────────────────────── ログイン中のユーザー名

末尾の記号が $ なら一般ユーザー、# なら管理者(root)です。「今、自分は誰として、どこにいるのか」をこのプロンプトが常に教えてくれます。これから何百回と目にする、いちばん身近な情報表示です。

このコースのシミュレータは、すでに「SSH でサーバーに入り、シェルが立ち上がった状態」から始まります。だから、いきなりコマンドを打って試せます。本物の現場でも、最初の一歩はこの ssh でサーバーに入るところからです(SSH は第8章でもう一度、鍵の話として登場します)。

この章のまとめ

  • 画面のないサーバーには、手元の PC から SSH で「入り込んで」操作する
  • 端末(ターミナル) =打つ窓口、SSH =暗号化された通り道、シェル(bash)=実行係
  • プロンプト user@becomecoder:~$ は「誰が・どのサーバーで・どこにいるか」を示す
  • 記号 $=一般ユーザー、#=管理者(root)。次のレッスンから、いよいよ手を動かします