導入
サーバーには画面がないのに、どうやって操作するのでしょうか。答えは、手元の 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)。次のレッスンから、いよいよ手を動かします