
はじめに - “使えなくなったノートPC”でサーバー構築チャレンジ
インストール編を終えたサーバーを安全にリモート操作するため、今回は SSH の導入と最低限のセキュリティ強化を行います。
本記事は、自分用の備忘録を兼ねていますが、同じような環境で試される方の参考になれば幸いです。
▼ この企画の経緯を表示
はじめに ― “使えなくなったノートPC”でサーバー構築チャレンジ
今、使えなくなったノートパソコンを蘇らせ中ww
このノート PC は、卒業生の S さん(ご高齢)から
「もう使わないので処分してほしい」
とご連絡をいただき、引き取った一台です。
起動してみると多少のもたつきはあるものの、ひととおり正常に動作していました。
調べたところ、Windows 11 には非対応でした。
Windows 10 のままオフラインで使用する方法もありますが、ネット環境が必須の現代では実用性が下がりますし、セキュリティ面を考えるとおすすめできません。
そこで、OS を丸ごと Linux(Ubuntu Server)へ乗り換え、古いノート PC を “社内サーバー” として最前線に復帰させることにしました。
| 今回の実験台:スペック |
|———————|——————————–|
| メモリ | 8 GB |
| ストレージ | HDD 1 TB |
| CPU | Intel® Core™ i5 |
| GPU | Intel HD Graphics |
| OS | Windows 10 Home(64bit, 日本語) |
今回やること
- OpenSSH Server の導入を確認し、必要であればインストールします
- 公開鍵・秘密鍵ペアを生成し、サーバーに登録して鍵認証を有効化します
- 基本的なセキュリティ設定を行います。
・PasswordAuthentication no
でパスワードログインを無効化
・PermitRootLogin no
で root ログインを禁止
・SSH ポートを 22 → 22222 に変更し、UFW で新ポートを許可 - Mac(相棒) から、鍵認証と新ポートを使って SSH 接続できることを確認します
SSH の基本と接続方法
SSH ってそもそも何?
SSH(Secure Shell)とは、インターネット越しにサーバーへ安全に接続するための通信プロトコルです。
サーバーを構築した後も、設定変更や保守作業を行う必要があります。
しかしサーバーが自宅や職場とは別の場所に設置されている場合、直接キーボードとモニターを接続して操作することは困難です。
こうした場面で役立つのが リモート操作、つまり SSH です。
SSH は通信内容をすべて暗号化するため、ID やパスワードが盗まれる心配がありません。
認証方式としては以下の 2 種類を備えています。
- パスワード認証
ユーザー名とパスワードを入力してログインする方式です
手軽に利用できますが、総当たり攻撃の標的になりやすいという欠点があります - 公開鍵認証
手元に 秘密鍵、サーバーに 公開鍵 を配置して認証する方式です
パスワードを送信しないため安全性が高く、ログインもスムーズになります
※本記事ではこちらを推奨し、設定方法を詳しく解説します。
要するに SSH は 「暗号化された安全な遠隔操作のドア」 です。
これを適切に設定しておけば、どこに設置したサーバーでも安心して管理できるようになります。
ターミナル/コマンドプロンプトから接続する方法
Macには、最初からSSHにアクセスして実行するためのアプリケーションが入っています。それがターミナルです。
アプリケーションフォルダのユーティリティフォルダの中を探せば見つかります。
Mac(ターミナル)から
『ssh ユーザー名@サーバーのIPアドレス』と入力すれば、その後パスワードを入力すればログインできます。
例)
ユーザー名:yoshi
サーバーのIPアドレス:192.168.1.5
# Macのターミナルから接続する方法
yoshi@yoshi-New-MBP ~ % ssh yoshi@192.168.1.5
yoshi@192.168.1.5's password:
GUI SSH クライアント
Termius
DL:https://termius.com/
Termiusは、Macや他のコンピュータだけでなく、iPhoneやAndroidでも動作します。

Termiusを開く
接続すると、ターミナルと同じようなコマンド

使い方などは『今回のやること』を済ませながら使い方を紹介していきます。
OpenSSH Server の導入確認 & インストール
リモート操作のかなめである OpenSSH Server がサーバーに導入されているかどうかを最初に確認しましょう。
※(今回は)Ubuntu Server のインストーラで「Install OpenSSH server」にチェックを入れたので、既に導入済みですが、最小構成インストールやDesktop 版では入っていない場合があります。
SSH サーバーの導入確認
# 稼働状況を調べるコマンド
yoshi@itesplusserver:~$ systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
Active: active (running) since Fri 2025-07-11 01:03:31 UTC; 1h 43min ago
TriggeredBy: ● ssh.socket
Docs: man:sshd(8)
man:sshd_config(5)
Process: 1009 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 1020 (sshd)
Tasks: 1 (limit: 9314)
Memory: 4.3M (peak: 5.2M)
CPU: 89ms
CGroup: /system.slice/ssh.service
└─1020 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
Jul 11 01:03:31 itesplusserver systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
Jul 11 01:03:31 itesplusserver sshd[1020]: Server listening on :: port 22.
Jul 11 01:03:31 itesplusserver systemd[1]: Started ssh.service - OpenBSD Secure Shell server.
Jul 11 01:45:30 itesplusserver sshd[1125]: Accepted password for yoshi from 192.168.1.103 port 52198 ssh2
Jul 11 01:45:30 itesplusserver sshd[1125]: pam_unix(sshd:session): session opened for user yoshi(uid=1000) by yoshi(uid=0)
※サービス状態がactive (running)になっていれば起動しています
見つからない、あるいは inactive/failed であれば、次の手順でインストールを行います。
OpenSSH Server をインストールする
アップデートを確認して、インストールします。
パッケージ名は「openssh-server」です。
# SSHをアップデートするコマンド
sudo apt update
# SSHをインストールするコマンド
sudo apt install openssh-server
インストールが完了したらSSHを自動起動するように設定
# SSHを自動起動に設定するコマンド
sudo systemctl enable ssh
ファイアウォール(UFW)を設定する
Ubuntu では UFW(Uncomplicated Firewall) を利用するのが簡単です。
インストール直後はファイアウォールが無効になっていることが多いので、まずポート 22 を開放してから有効化しましょう。
# 22 番ポートを許可(変更前のデフォルト)
yoshi@itesplusserver:~$ sudo ufw allow 22/tcp
[sudo] password for yoshi:
Skipping adding existing rule
Skipping adding existing rule (v6)
# UFW を有効化
yoshi@itesplusserver:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
# 許可ルールを確認
yoshi@itesplusserver:~$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
※(今回は)後ほど、ポート番号の変更を行います。
動作確認
サーバー側でポートが待ち受けているか確認します。
#動作確認する
yoshi@itesplusserver:~$ sudo ss -nltp | grep ssh
[sudo] password for yoshi:
LISTEN 0 4096 *:22 *:* users:(("sshd",pid=1083,fd=3),("systemd",pid=1,fd=99))
*:22
→ どの IP でもポート 22 で待ち受けusers:(("sshd",pid=1083,fd=3))
→ プロセス名 sshd、PID 1083 がこのソケットを開いている
Mac からパスワード認証で接続を試します。
例)
ユーザー名:yoshi
サーバーのIPアドレス:192.168.1.5
# SSHに接続する
yoshi@yoshi-New-MBP ~ % ssh yoshi@192.168.1.5
yoshi@192.168.1.5's password:
ログイン成功&sudo systemctl status ssh
が active であれば導入完了です。
yoshi@itesplusserver:~$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-07-22 12:11:19 UTC; 1h 22min ago
TriggeredBy: ● ssh.socket
Docs: man:sshd(8)
man:sshd_config(5)
Process: 1074 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 1083 (sshd)
Tasks: 1 (limit: 9314)
Memory: 4.2M (peak: 5.4M)
CPU: 124ms
CGroup: /system.slice/ssh.service
└─1083 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
※サービス状態がactive (running)になっていれば起動している
公開鍵・秘密鍵ペアの生成と登録(鍵認証の有効化)
なぜ鍵認証にするのか?
パスワード認証は手軽ですが、以下の弱点があります:
- 総当たり(ブルートフォース)攻撃で推測されるリスクが高い
- パスワードを入力するたびにネットワークへ送信される(SSH では暗号化されますが「送る」という行為自体は残る)
公開鍵認証 であれば、サーバー側に置くのは「鍵穴」にあたる公開鍵だけで、「合鍵」にあたる秘密鍵はクライアント PC から絶対に出ません。
したがって、以下の大きなメリットがあります:
- パスワード漏えい・推測の心配がほぼゼロ
- ワンコマンドでログインできるので運用が楽
鍵ペアを生成する(暗号化方式:ed25519)
なぜ ed25519 が推奨なのか?
- 短い鍵長で高い強度──楕円曲線暗号を採用しており、RSA の 2048 bit に匹敵する安全性を 256 bit で実現
- 高速──サイン(署名)や認証が軽く、低スペック機でも負荷が小さい
- 鍵ファイルが小さい──バックアップや持ち運びが楽
- 新しいOpenSSHではデフォルト──
ssh-keygen
をオプションなしで実行するとed25519鍵が生成される
つまり 「安全・速い・扱いやすい」 の三拍子がそろっているため、特別な理由がない限り ed25519 を選べば OK です。
#現在どのディレクトリにいるか確認する
yoshi@yoshi-New-MBP ~ % pwd
/Users/yoshi
#.sshディレクトリへ移動する
yoshi@yoshi-New-MBP ~ % cd .ssh
#ssh-keygenで作成する(方式:ed25519)
yoshi@yoshi-New-MBP .ssh % ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
#秘密鍵のファイル名を決める(そのままでも良い)
Enter file in which to save the key (/Users/yoshi/.ssh/id_ed25519): /Users/yoshi/.ssh/id_ed25519_itesplus
#パスワードは決めないのでEnterを2回押す
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
#秘密鍵:id_ed25519_itesplus
#公開鍵:id_ed25519_itesplus.pub
Your identification has been saved in /Users/yoshi/.ssh/id_ed25519_itesplus
Your public key has been saved in /Users/yoshi/.ssh/id_ed25519_itesplus.pub
The key fingerprint is:
SHA256:wjqj/EVlOCUZQ2wnjpTvAKQjS4Ah+6WzMmezPSy2CXc yoshi@yoshi-New-MBP.local
The key's randomart image is:
+--[ED25519 256]--+
|=o. +=o. |
|+o. o ==. |
|=. o.=ooo |
|o+ oo.o+ |
|. + o+ S |
| o o.. |
|+ *.E . |
| OoBo+ |
| .*+o. |
+----[SHA256]-----+
#一覧表示(id_ed25519_itesplusとid_ed25519_itesplus.pubが増えている)
yoshi@yoshi-New-MBP .ssh % ls -la
total 40
drwx------ 7 yoshi staff 224 7 31 00:00 .
drwxr-x---+ 40 yoshi staff 1280 7 30 23:37 ..
-rw-------@ 1 yoshi staff 1 7 30 19:27 config
-rw------- 1 yoshi staff 419 7 31 00:00 id_ed25519_itesplus
-rw-r--r-- 1 yoshi staff 107 7 31 00:00 id_ed25519_itesplus.pub
-rw------- 1 yoshi staff 831 7 10 19:22 known_hosts
-rw-r--r-- 1 yoshi staff 93 7 10 19:22 known_hosts.old
公開鍵をサーバーへ登録する
yoshi@itesplusserver:~$ cd .ssh
yoshi@itesplusserver:~/.ssh$ ls -la
total 12
drwx------ 2 yoshi yoshi 4096 Jul 30 10:29 .
drwxr-x--- 4 yoshi yoshi 4096 Jul 30 10:29 ..
-rw------- 1 yoshi yoshi 1 Jul 30 10:29 authorized_keys
#viで編集する
yoshi@itesplusserver:~/.ssh$ vi authorized_keys
公開鍵の中身を(home/yoshi/.ssh/authorized_keys)に書き込む(コピペ)
必須のパーミッション設定
なぜこのパーミッションが必要?
700 (.ssh):他のユーザーがSSH設定を見ることを防ぐ
600 (秘密鍵):絶対に他人に見られてはいけない
644 (公開鍵):公開されても問題ないが、改ざんは防ぐ
600 (authorized_keys):他人による不正な鍵追加を防ぐ
間違ったパーミッションだとSSH接続が拒否されるので、注意が必要です!
.sshディレクトリ
# 所有者のみ読み取り・書き込み・実行可能
chmod 700 ~/.ssh
# パーミション確認
drwx------ 7 yoshi staff 224 7 31 18:24 .ssh
秘密鍵ファイル
# 所有者のみ読み取り・書き込み可能
chmod 600 ~/.ssh/id_ed25519_itesplus
# パーミション確認
-rw------- 1 yoshi staff 419 7 31 00:00 id_ed25519_itesplus
公開鍵ファイル
# 所有者:読み取り・書き込み、その他:読み取りのみ
chmod 644 ~/.ssh/id_ed25519_itesplus.pub
# パーミション確認
-rw-r--r-- 1 yoshi staff 107 7 31 00:00 id_ed25519_itesplus.pub
authorized_keysファイル(サーバー側)
# 所有者のみ読み取り・書き込み可能
chmod 600 ~/.ssh/authorized_keys
# パーミション確認
-rw------- 1 yoshi yoshi 107 Jul 30 15:27 authorized_keys
秘密鍵や接続先リモートを省略する方法(config
を編集する)
役割:
- SSH接続時のコマンドを省略する
ファイルの場所(クライアント側(Mac)):
#ファイル場所
/Users/yoshi/.ssh/config
修正内容:
例)
Host:itesplus
HostName:192.168.1.5
User:yoshi
IdentityFile:~/.ssh/id_ed25519_itesplus
Host itesplus
Hostname 192.168.1.5
User yoshi
IdentityFile ~/.ssh/id_ed25519_itesplus
基本的なセキュリティ設定
sshd_config
を編集する
役割:
- SSHサーバーの動作を制御する設定ファイル
- どのような接続を許可するか、どのように認証するかなどを定義
ファイルの場所:
#ファイル場所
/etc/ssh/sshd_config
修正するファイル:
※変更を加える前にバックアップを取ります。
# sshd_configファイルをファイル名:sshd_config20250801(ファイル名+日付)でバックアップする
yoshi@itesplusserver:/etc/ssh$ sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config20250801
[sudo] password for yoshi:
yoshi@itesplusserver:/etc/ssh$ ls -la
total 664
drwxr-xr-x 4 root root 4096 Aug 1 03:49 .
drwxr-xr-x 113 root root 4096 Jul 31 07:10 ..
-rw-r--r-- 1 root root 620042 Apr 29 14:57 moduli
-rw-r--r-- 1 root root 1649 Aug 9 2024 ssh_config
drwxr-xr-x 2 root root 4096 Aug 9 2024 ssh_config.d
-rw-r--r-- 1 root root 3600 Aug 1 02:02 sshd_config
-rw-r--r-- 1 root root 3600 Aug 1 02:02 sshd_config20250801
drwxr-xr-x 2 root root 4096 Jul 9 05:23 sshd_config.d
-rw------- 1 root root 513 Jul 9 05:23 ssh_host_ecdsa_key
-rw-r--r-- 1 root root 181 Jul 9 05:23 ssh_host_ecdsa_key.pub
-rw------- 1 root root 411 Jul 9 05:23 ssh_host_ed25519_key
-rw-r--r-- 1 root root 101 Jul 9 05:23 ssh_host_ed25519_key.pub
-rw------- 1 root root 2610 Jul 9 05:23 ssh_host_rsa_key
-rw-r--r-- 1 root root 573 Jul 9 05:23 ssh_host_rsa_key.pub
-rw-r--r-- 1 root root 342 Dec 7 2020 ssh_import_id
# nanoを使って編集する
yoshi@itesplusserver:/etc/ssh$ sudo nano /etc/ssh/sshd_config
nanoについて
nanoは、Linuxなどで使われる、シンプルなテキストエディタです。
初心者でも使いやすいように設計されており、CUI(キャラクターユーザーインターフェース)で直感的に操作できます。
パスワードログインを無効化
パスワードによるログインを許可していると、総当たり攻撃の標的になる可能性があるので変更し、ログインする方法を公開鍵と秘密鍵のみに絞り、ログインできるようにします。
#変更・確認ポイント(行頭の # を外して保存)
# 鍵認証を許可
PubkeyAuthentication yes
# パスワードログインを無効化
PasswordAuthentication no
<鍵認証を許可>PubkeyAuthentication
が no
になっている場合は yes
に変更します。
<パスワードログインを無効化>PasswordAuthentication
が yes
になっている場合は no
に変更します。
root ログインを禁止
SSH接続では root ユーザとしてログインできないように設定します。
#変更・確認ポイント(行頭の # を外して保存)
# rootログインを禁止
PermitRootLogin no
PermitRootLogin
を prohibit-password
から no
に変更します。
SSH ポートの変更
22 番ポートのまま使用すると攻撃の的になる可能性があるので、変更します。
番号は 1024 〜 65535 までの任意の数値を設定します。
今回は2222に設定します。
SSHのポート番号の変更は以下の3点に気をつけます。
- openSSH(サーバー側)の設定を変更する
- UFW(サーバー側)の設定を変更する
- クライアント側の設定を変更する
# openSSH(サーバー側)の設定を変更する
#変更・確認ポイント(行頭の # を外して保存)
# Port 22を一旦残して、Port 2222を1行追加する
Port 22
Port 2222
#確認する
yoshi@itesplusserver:/etc/ssh$ systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
Active: active (running) since Fri 2025-08-01 05:47:12 UTC; 16min ago
TriggeredBy: ● ssh.socket
Docs: man:sshd(8)
man:sshd_config(5)
Process: 1132 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 1141 (sshd)
Tasks: 1 (limit: 9314)
Memory: 5.1M (peak: 6.0M)
CPU: 161ms
CGroup: /system.slice/ssh.service
└─1141 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
Aug 01 05:47:12 itesplusserver systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
Aug 01 05:47:12 itesplusserver sshd[1141]: Server listening on :: port 2222.
Aug 01 05:47:12 itesplusserver sshd[1141]: Server listening on :: port 22.
Aug 01 05:47:12 itesplusserver systemd[1]: Started ssh.service - OpenBSD Secure Shell server.
Aug 01 05:47:30 itesplusserver sshd[1206]: Accepted publickey for yoshi from 192.168.1.105 port 63269 ssh2: ED25519 SHA256:wjqj/EVlOCUZQ2wnjpTvAKQjS4Ah+6WzMmezPSy2C>
Aug 01 05:47:30 itesplusserver sshd[1206]: pam_unix(sshd:session): session opened for user yoshi(uid=1000) by yoshi(uid=0)
Aug 01 06:02:26 itesplusserver sshd[1416]: Accepted publickey for yoshi from 192.168.1.105 port 63516 ssh2: ED25519 SHA256:wjqj/EVlOCUZQ2wnjpTvAKQjS4Ah+6WzMmezPSy2C>
Aug 01 06:02:26 itesplusserver sshd[1416]: pam_unix(sshd:session): session opened for user yoshi(uid=1000) by yoshi(uid=0)
(注) 一旦デフォルトのポート番号(Port 22)を残して、後で削除してもいい。
理由として、ポート番号を変更後にUFWの設定まで終了させないと、22番ポートでのサーバーログインができなくなってしまう。
保険のためUFWの設定完了後に削除するという方法をおすすめします。
# UFW(サーバー側)の設定を変更する
# Port番号 2222を許可する
yoshi@itesplusserver:/etc/ssh$ sudo ufw allow 2222/tcp
[sudo] password for yoshi:
Rule added
Rule added (v6)
# UFWの確認
# Port22も開いた状態→このポートを閉じる
yoshi@itesplusserver:/etc/ssh$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
2222/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
2222/tcp (v6) ALLOW Anywhere (v6)
# Port22を閉じる
# ufw status numberedコマンドでUFWに番号表示する
yoshi@itesplusserver:/etc/ssh$ sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 2222/tcp ALLOW IN Anywhere
[ 3] 22/tcp (v6) ALLOW IN Anywhere (v6)
[ 4] 2222/tcp (v6) ALLOW IN Anywhere (v6)
# 22番ポートは1番と3番。これを削除する
# 3番削除
yoshi@itesplusserver:/etc/ssh$ sudo ufw delete 3
Deleting:
allow 22/tcp
Proceed with operation (y|n)? y
Rule deleted (v6)
# 1番削除
yoshi@itesplusserver:/etc/ssh$ sudo ufw delete 1
Deleting:
allow 22/tcp
Proceed with operation (y|n)? y
Rule deleted
#UFW確認
yoshi@itesplusserver:/etc/ssh$ sudo ufw status
Status: active
To Action From
-- ------ ----
2222/tcp ALLOW Anywhere
2222/tcp (v6) ALLOW Anywhere (v6)
(注) 再度、/etc/ssh/sshd_configファイルを編集して、一旦残したPort 22を削除します。(作業は省略します)
# クライアント側(/Users/yoshi/.ssh/config)の設定を変更する
Host itesplus
Hostname 192.168.1.5
User yoshi
IdentityFile ~/.ssh/id_ed25519_itesplus
port 2222
~
~
~
~
設定の反映
#設定を反映する
sudo systemctl restart ssh
Mac(相棒)から鍵認証 & 新ポートで接続テスト
鍵認証でログインをテストする
yoshi@yoshi-New-MBP ~ % ssh itesplus
Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.8.0-71-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Fri Aug 1 07:01:09 AM UTC 2025
System load: 0.08
Usage of /: 7.8% of 97.87GB
Memory usage: 8%
Swap usage: 0%
Temperature: 49.0 C
Processes: 141
Users logged in: 0
IPv4 address for wlp1s0: 192.168.1.5
IPv6 address for wlp1s0: 2405:6585:f00:2a00:721c:e7ff:fe61:dbc2
* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
just raised the bar for easy, resilient and secure K8s cluster deployment.
https://ubuntu.com/engage/secure-kubernetes-at-the-edge
Expanded Security Maintenance for Applications is not enabled.
19 updates can be applied immediately.
To see these additional updates run: apt list --upgradable
Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
Last login: Fri Aug 1 06:59:37 2025 from 192.168.1.105
yoshi@itesplusserver:~$
Linux Ubuntu Server -Turn your old laptop into a server-
#01 インストール編
#02 SSHサーバー編
#03 Webサーバー編
#04 DNSサーバー編
#05 FTPサーバー編
#06 データベース編
#07 ファイルサーバー編
#08 メールサーバー編
#09 監視サーバー編
【PR】商品紹介
この本を読みながら実践。
載ってないところはオリジナル。。
![]() | ゼロからわかるLinuxサーバー超入門 Ubuntu対応版 [ 小笠原 種高 ] 価格:2860円 |

コメント