AWS1-4 SSH接続とLinux基本操作

💻 SSH接続とLinux基本操作(Amazon Linux 2 実習)

🎯 学習目的

AWS上に構築したEC2インスタンスへSSHで接続し、
Linuxの基本操作(ファイル・権限・サービス)を理解・体験する。


🗺️ 1. 実習の全体像

手順内容
SSHクライアントからEC2に接続
Linuxの基本構造を理解(ディレクトリ階層)
ファイル操作コマンドを練習
権限(パーミッション・所有者)を理解
サービスの状態を確認・操作

🔑 2. SSH接続(リモートログイン)

🧩 SSHとは

  • Secure Shell の略。暗号化された通信でリモート接続する仕組み。
  • AWSでは、**キーペア(.pemファイル)**を使って認証する。

⚙️ 実習手順:SSH接続

【Windows:PowerShell使用の場合】

  1. 事前に .pem ファイルを保存(例:C:\AWS_KEYS\aws-key-tokyo.pem
  2. 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 sshdSSHサービスの状態確認
sudo systemctl start httpdApache起動
sudo systemctl stop httpdApache停止
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)インストールへ進む