💻 SSH接続とLinux基本操作(Amazon Linux 2 実習)
🎯 学習目的
AWS上に構築したEC2インスタンスへSSHで接続し、
Linuxの基本操作(ファイル・権限・サービス)を理解・体験する。
🗺️ 1. 実習の全体像
| 手順 | 内容 |
|---|---|
| ① | SSHクライアントからEC2に接続 |
| ② | Linuxの基本構造を理解(ディレクトリ階層) |
| ③ | ファイル操作コマンドを練習 |
| ④ | 権限(パーミッション・所有者)を理解 |
| ⑤ | サービスの状態を確認・操作 |
🔑 2. SSH接続(リモートログイン)
🧩 SSHとは
- Secure Shell の略。暗号化された通信でリモート接続する仕組み。
- AWSでは、**キーペア(.pemファイル)**を使って認証する。
⚙️ 実習手順:SSH接続
【Windows:PowerShell使用の場合】
- 事前に
.pemファイルを保存(例:C:\AWS_KEYS\aws-key-tokyo.pem) - PowerShellを起動し、以下を入力:
cd C:\AWS_KEYS
ssh -i "aws-key-tokyo.pem" ec2-user@<パブリックIPアドレス>
例:
ssh -i "aws-key-tokyo.pem" ec2-user@13.115.240.125
【Mac/Linuxの場合】
chmod 400 aws-key-tokyo.pem
ssh -i aws-key-tokyo.pem ec2-user@13.115.240.125
✅ 接続できたら表示されるメッセージ例:
Amazon Linux 2 AMI
[ec2-user@ip-172-31-xx-xx ~]$
👉 ~ はホームディレクトリを示す。
📁 3. Linuxの基本構造(ディレクトリ階層)
🧱 主なディレクトリ
| ディレクトリ | 役割 |
|---|---|
/ | ルート(最上位階層) |
/home | 一般ユーザーのホームディレクトリ |
/etc | 設定ファイル群(例:Apache設定) |
/var | 変動データ(ログ・メールなど) |
/usr | 一般プログラムやライブラリ |
/tmp | 一時ファイル置き場 |
📘 講師コメント:
Linuxは「フォルダ」ではなく「ディレクトリ」と呼びます。
どんなファイルもこの階層構造の中にあります。
🧾 4. 基本的なファイル・ディレクトリ操作
🧰 よく使うコマンド一覧
| コマンド | 内容 | 例 |
|---|---|---|
pwd | 現在のディレクトリ表示 | pwd |
ls | ファイル一覧表示 | ls -l |
cd | ディレクトリ移動 | cd /etc |
mkdir | ディレクトリ作成 | mkdir testdir |
rmdir | 空ディレクトリ削除 | rmdir testdir |
touch | 空ファイル作成/更新 | touch index.html |
cp | ファイルコピー | cp index.html /tmp/ |
mv | ファイル移動/リネーム | mv index.html old.html |
rm | ファイル削除 | rm old.html |
cat | ファイル内容表示 | cat /etc/hosts |
🧪 実習①:ファイル操作練習
実習ステップ
# ホームディレクトリを確認
pwd
# ディレクトリ作成
mkdir testdir
cd testdir
# ファイル作成
touch hello.txt
# 内容を記述(nanoエディタ使用)
nano hello.txt
(入力内容)
Hello AWS!
This is my first Linux file.
保存:Ctrl + O → Enter → Ctrl + X で終了。
# 内容確認
cat hello.txt
🧪 実習②:コピー・移動・削除
# ファイルをコピー
cp hello.txt hello_copy.txt
# ファイル名変更
mv hello_copy.txt renamed.txt
# ファイル一覧を確認
ls -l
# ファイル削除
rm renamed.txt
🔐 5. 権限と所有者の理解
🧩 パーミッションの仕組み
| 種別 | 表記 | 意味 |
|---|---|---|
| 所有者 | u | ファイル作成者 |
| グループ | g | 同じグループのユーザー |
| その他 | o | それ以外のユーザー |
🔠 権限の種類
| 記号 | 意味 | 数値表現 |
|---|---|---|
| r | 読み取り | 4 |
| w | 書き込み | 2 |
| x | 実行 | 1 |
📘 例:-rw-r--r--
| 区分 | 権限 | 意味 |
|---|---|---|
| 所有者 | rw- | 読み書き可 |
| グループ | r– | 読み取りのみ |
| その他 | r– | 読み取りのみ |
🧪 実習③:権限変更
# 現在の権限を確認
ls -l hello.txt
# 書き込み権限をすべてに付与
chmod 666 hello.txt
# 実行権限を追加
chmod +x hello.txt
# 元に戻す
chmod 644 hello.txt
🧪 実習④:所有者変更(root操作時)
# rootに変更(sudo)
sudo chown root hello.txt
# 所有者を確認
ls -l hello.txt
# 再びec2-userに戻す
sudo chown ec2-user hello.txt
📘 講師コメント:
所有者をrootにすると、一般ユーザーは編集できなくなります。
システム設定ファイル(/etc/httpd/conf/httpd.conf など)はroot所有です。
⚙️ 6. サービス(デーモン)の確認と操作
🧩 サービスとは
バックグラウンドで常駐して動作するプログラム。
例:sshd(SSH接続)、httpd(Apache)、mysqld(MySQL)など。
🧰 基本コマンド(systemctl)
| コマンド | 内容 |
|---|---|
sudo systemctl status sshd | SSHサービスの状態確認 |
sudo systemctl start httpd | Apache起動 |
sudo systemctl stop httpd | Apache停止 |
sudo systemctl enable httpd | 自動起動を有効化 |
sudo systemctl disable httpd | 自動起動を無効化 |
🧪 実習⑤:サービスの状態を確認してみる
# SSHサービスの状態確認
sudo systemctl status sshd
# Apacheをまだ入れていない場合でも実行可能
sudo systemctl list-units --type=service | grep ssh
出力例:
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: active (running)
📘 講師コメント:
“active (running)” と表示されていれば、そのサービスは稼働中です。
“inactive (dead)” なら停止しています。
🧪 実習⑥:仮サービス(例:crond)の操作
# サービスの状態確認
sudo systemctl status crond
# 一時停止
sudo systemctl stop crond
# 再起動
sudo systemctl start crond
# 自動起動設定確認
sudo systemctl is-enabled crond
🧱 7. 総合確認演習
✅ チェックリスト
| 項目 | 実施確認 |
|---|---|
| SSH接続できた | ☐ |
| ディレクトリを作成/移動した | ☐ |
| ファイルを作成・編集した | ☐ |
| 権限変更を行った | ☐ |
| サービス状態を確認した | ☐ |
🧭 8. トラブル対応集
| 症状 | 対処法 |
|---|---|
| SSH接続できない | セキュリティグループでポート22が許可されているか確認 |
| 「Permission denied」 | .pemファイルのパーミッションを400に設定 |
sudoが使えない | Amazon Linuxのec2-userはsudo権限あり。別ユーザーなら設定必要 |
nanoが無い | sudo yum install nano で導入 |
🧾 9. まとめ
| 学びのポイント | 内容 |
|---|---|
| SSH | 安全なリモートログイン手段(鍵認証) |
| Linux基本操作 | ファイル・ディレクトリの操作を理解 |
| 権限管理 | 最小権限で安全運用(chmod/chown) |
| サービス管理 | systemctlで確認・起動・停止ができる |
| 次のステップ | Apache(httpd)インストールへ進む |