初回ログインと bash プロンプトの読み方
SSH を使用して、踏み台から演習サーバへの 2 段接続とプロンプトの読み方を演習します。
予約済みの方は、演習パネル(パソコンでは画面の右、スマホではページのいちばん下)の手順で演習サーバに接続してから読み進めてください。
| 所要時間 | 約 20 分 |
|---|---|
| 前提知識 | 特になし(Web ブラウザが使えれば OK) |
| 使用機材 | 操作端末 workstation01、演習サーバ learner01 |
| 関連章 | 前: なし(Part 1 の最初)/ 後: Chapter 2「ファイルシステム階層」 |
ようこそ、Linux の世界へ
最初の一歩として、Linux サーバに会いに行きます。
サーバは普段、データセンターの暗い部屋でひっそり動いています。ディスプレイを覗き込む人はほとんどいません。代わりに、ネットワーク越しに、文字だけで対話します。その対話の入口が、SSH (Secure SHell) という仕組みです。ssh ユーザ名@サーバ名 という形のコマンド 1 行でサーバに繋がります。
この章での「2 段構え」の話
実は、現場では本番のサーバに直接インターネットからは入れないようになっていることがほとんどです。間に踏み台(ふみだい / jump host / bastion)と呼ばれる入口専用のサーバを挟みます。受講環境も同じ構造にしてあります。
workstation01 → 演習サーバ learner01。奥のサーバへは直接入らず、踏み台を 1 枚かませる。workstation01 から演習サーバ learner01 に SSH でログインし、プロンプトを読んで「今どこに居るか」を自分の目で確認できるようになっている。この章を終えるとできること
SSH の仕組みを知り、「入る・読む・確かめる・出る」の 4 動作が自分の手でできるようになります。
自分の手でログインできる
今どこに居るか分かる
コマンドで確認できる
踏み台に安全に戻れる
概念説明
1. SSH ってなに? ネットワーク越しの「窓と本体」
SSH は、ひとことで言うと 「ネットワーク越しに、別のコンピュータの中で文字をやり取りする」仕組みです。イメージとしてはこんな感じです:
あなたが踏み台のターミナルで ls と打つと、その文字が暗号化されて learner01 に届き、向こうで ls が実行され、結果が暗号化されて戻ってきます。踏み台のターミナルは「窓」で、向こう側のシェルが本体、という関係です。
なぜ暗号化されているかというと、SSH が生まれた 1990 年代に、それまで主流だった telnet という仕組みが「パスワードが平文で流れる」という致命的な弱点を抱えていたからです。SSH はそこを直すために作られました。いまの Linux サーバの管理では、SSH が広く使われています。
下の図は、ssh student@learner01 を打ってから結果が戻るまでを 6 ステップで追ったものです。▶ 次へ を押しながら、踏み台 workstation01 と演習サーバ learner01 の間で何が起きるかを目で追ってください。
(読み込み中…)
—
2. プロンプトという「現在地表示」
SSH で learner01 にログインに成功すると、こういう表示が出ます:
student@learner01:~$
これを プロンプト と呼びます。プロンプトは「次のコマンドをどうぞ」という入力待ちの目印であると同時に、今あなたがどこに居るかの現在地表示でもあります。各部分の意味を分解してみましょう:
| 部分 | 意味 | 読み方の例 |
|---|---|---|
student | ログインしているユーザ名 | 「student として」 |
@ | 区切り記号 | 「at」 |
learner01 | 接続先のホスト名 | 「learner01 で」 |
: | 区切り記号 | — |
~ | 現在のディレクトリ(=Windows でいうフォルダ)。「自分のホーム」の省略 | 「ホームに居る」 |
$ | 一般ユーザの入力待ち。# は管理者で危険 | — |
つまり student@learner01:~$ を声に出すと、「student として、learner01 で、ホームに居て、コマンドを待ってます」 という意味になります。
慣れてくると、プロンプトを一目見るだけで「自分は今どのサーバの・誰として・どこに居るか」が瞬時にわかります。複数のサーバに同時に入って作業するようになると、この習慣が、操作する相手を取り違える事故を防ぐ助けになります。本番サーバで開発用のつもりで rm -rf を打って真っ青になる、という事故は、プロンプトを見ない癖から起きやすくなります。
演習:踏み台から演習サーバへ「会いに行く」
| 項目 | 値 |
|---|---|
| 出発地点 | 踏み台 workstation01(あなたは alice でログイン中) |
| 接続先 | 演習サーバ learner01 |
| 接続方法 | ssh student@learner01 |
| 必要権限 | 一般ユーザ(sudo 不要) |
| 所要時間 | 約 8 分 |
ssh を打ち直すだけ。何度でもやり直せます。踏み台から learner01 に SSH する
踏み台 workstation01 のターミナル(alice@workstation01:~$ というプロンプトが出ています)で、まずはこのコマンドを打ってみてください:
ssh student@learner01
初めて接続するときは、こんなメッセージが出ます:
The authenticity of host 'learner01 ...' can't be established. Are you sure you want to continue connecting (yes/no/[fingerprint])?
これは 「このサーバ、初めて見るけど本当に繋いでいい?」 という確認です。学習環境なので yes と打って Enter。続いてパスワードを聞かれます。パスワードは、開始 10 分前に届くメール(件名「【infra-study.org】演習環境の接続情報」)に書いてあります。入力中の文字は画面に表示されませんが、ちゃんと入力されています(セキュリティ上の仕様です)。
パスワードが見当たらない・メールが届いていない場合は、演習サーバに接続するのトラブル欄を確認してください。
Permission denied (publickey,password)」と出たら: パスワードがまだ/違うサインです。ssh student@learner01 を打ち直してパスワードを入れ直してください。何度でもやり直せます。現在地を確認する 5 つのコマンド
ログインに成功すると、プロンプトが alice@workstation01:~$ から student@learner01:~$ に変わります。この瞬間、あなたは踏み台から一段奥の learner01 の中に居ます。プロンプトが変わったことが「現在地が変わった」サインです。
ここで、自分の現在地を 5 つの角度から確認してみます:
whoami # 自分が誰として入っているか hostname # 接続先のホスト名 pwd # 現在のディレクトリ(絶対パス) id # ユーザ番号と所属グループ date # サーバ側の現在時刻
こんな出力が見えるはずです:
alice@workstation01:~$ ssh student@learner01 student@learner01's password: Welcome to Ubuntu 24.04 LTS ... student@learner01:~$ whoami student student@learner01:~$ hostname learner01 student@learner01:~$ pwd /home/student student@learner01:~$ id uid=1003(student) gid=1003(student) groups=1003(student),4(adm) student@learner01:~$ date Sun May 10 14:32:18 JST 2026
id の uid の数字(1003 など)や、groups に並ぶ数(adm など)は環境によって変わります。「例と違う」と感じても問題ありません。大事なのは (student) というユーザ名が表示されていることです。adm というグループが何なのかは、後の章で詳しく説明します。
GOAL: ログアウトして踏み台に戻る
確認が終わったら、こう打って learner01 から抜けます:
exit logout Connection to learner01 closed. alice@workstation01:~$
プロンプトが alice@workstation01:~$ に戻れば成功です。踏み台に戻ってきたということ。learner01 と踏み台、2 つの場所を行き来できる感覚を覚えておいてください。最後に alice@workstation01:~$ に戻れば、踏み台に帰還した合図です。プロンプトの「左側の名前」だけ見ても、自分が今どっちのサーバに居るかが瞬時にわかる。これがプロンプトの威力です。
つまずきポイント
ハマり #1 · パスワードを 3 回間違えて切られた
落ち着いて ssh student@learner01 をもう一度打つだけです。何度でもやり直せます。パスワードはタイプ中に画面に表示されません(セキュリティ上の仕様です)。ゆっくり入力してください。
ハマり #2 · 画面がフリーズしたように見える
Ctrl + C でコマンドを中断してみてください。それでも反応しない場合はターミナルウィンドウごと閉じて、もう一度開き直してください。Guacamole セッション自体を更新しても OK です。
ハマり #3 · ssh: connect to host learner01 port 22: Connection refused
演習サーバ learner01 が停止している可能性があります。演習パネルのサーバ状態を確認し、「停止中」になっていたら時間を置いて再度確認してください。改善しない場合は運営へお問い合わせください。
- 原因: VM が起動していない、または SSH サービスが止まっている
- 対処: 自分では直せないため運営へ問い合わせ
AI に相談
修了確認
学んだことが身についたか、2 問だけ確認してみましょう。
問 1 · プロンプトを読み解く
次のプロンプトを見て、(a) ユーザ名、(b) ホスト名、(c) 現在のディレクトリ を答えてください。
alice@workstation01:/var/log$解答を見る
- (a) ユーザ名: alice
- (b) ホスト名: workstation01
- (c) 現在のディレクトリ: /var/log
ポイント: 本文中の ~ は「ホームディレクトリの省略」でしたが、/var/log のような具体的なパスが入っていれば、現在地はそのパスそのものです。/var/log はサーバのログが集まる場所で、これから何度も登場します。
ちなみにこの例の alice@workstation01、見覚えありませんか?あなたが演習開始時に居る踏み台ターミナルのプロンプトそのものです。プロンプトを読む練習を、自分の現在地で日々やっているということです。
問 2 · 実機で確認
演習サーバにログインしている状態で、「自分のホームディレクトリの絶対パス」を表示するコマンドは何でしたか?
※ STEP 03 で exit して踏み台に戻った人は、実際に試すなら ssh student@learner01 でもう一度 learner01 に入り直してから打ってください。
解答を見る
pwd
pwd は print working directory の略。student ユーザのホームは /home/student なので、結果もそうなります。
別解: echo $HOME も同じ結果を返します。ただし「今いる場所」と「自分のホームと決められている場所」の違いがあるので、ディレクトリを移動すると差が見えます。試しにディレクトリを移動してから両方打つと違いが見えますが、それは Chapter 2 のお楽しみに。
💡 修了確認の段階ヒント(問 1・問 2)
💡 段階ヒント 1 段目:軽く方向だけ
問 1(プロンプトを読む): プロンプトは @ の左が「誰(ユーザ名)」、右が「どこ(ホスト名)」、: の右が「今いる場所(ディレクトリ)」という決まった構造です。
問 2(コマンドを思い出す): 「今いる場所 = 現在地」を表示するコマンドを思い出してください。この章の演習で使いました。
💡 段階ヒント 2 段目:もう少し具体的に
問 1 · student@learner01:~$ を 3 つの要素に分解してみましょう。@ の左 / @ の右 / : の右。それぞれ何が入っていますか?
問 2 · p で始まる 3 文字のコマンドです。print working directory の頭文字を並べた名前です。
💡 段階ヒント 3 段目:答えと解説
問 1 の答え:
- (a) ユーザ名 =
@の左: alice - (b) ホスト名 =
@の右(:の前): workstation01 - (c) 現在のディレクトリ =
:の右($の前): /var/log
問 2 の答え:
pwd
pwd は print working directory の略。student ユーザのホームは /home/student なので、結果もそうなります。
次の章へ
この章で、踏み台 workstation01 から演習サーバ learner01 に SSH でログインし、プロンプトを読んで「今どこに居るか」を自分の目で確認しました。ssh student@learner01 で「会いに行く」感覚を体に覚えたこの経験が、Linux 学習の出発点です。ログインしたあなたが次に直面するのは、「このサーバの中、ファイルがどう並んでいるんだ?」という疑問です。
/、/home、/etc、/var、/usr、/tmpそれぞれの意味と歴史- 「あのファイルはどこに置けば正解か」が自然に分かるようになる
- learner01 の中をディレクトリで巡る演習(
ls/cd/pwd)