【VPS構築②】OSインストールとSSH Key登録

OSインストールとSSHアイキャッチ

記事内に広告を含みます

VPSを契約して最初にやるべきドメイン接続(ドメインをVPSのIPアドレスに結びつける名前解決)は①で完了しましたね。

その次はOSインストールとSSH鍵認証の設定です。


特にSSH鍵認証を設定しておかないと、セキュリティリスクが高く、ログイン自体できなくなることもあるので初期設定の中でも重要です!


この記事では私が契約しているシンVPSを例に、AlmaLinuxを安全に使うための初期設定を実際の操作画面とターミナルコマンドでわかりやすく解説していきます。

Lyn
Lyn

DNS設定やドメイン接続を待つ間にこの作業を済ませておくと、次の構築がスムーズです

OS・アプリイメージ一覧

シンVPSには、「OSイメージ」や「アプリイメージ」が多数用意されています。

OSイメージ”=VPSではパソコンでいうOSを自分で選んでインストールします。
例えば、Windowsの代わりに「Linux(リナックス)」系を入れて動かすのが一般的。

シンVPSで選べる主なOSイメージ

OS名バージョン情報
AlmaLinux8.6 (64bit) / 8.7 (64bit) / 8.8 (64bit) / 8.9 (64bit) / 8.10 (64bit) / 9.0 (64bit) / 9.1 (64bit) / 9.2 (64bit) / 9.3 (64bit) / 9.4 (64bit) / 9.5 (64bit) / 9.6 (64bit) / 10.0 (64bit)
Arch Linux2024.08.01 (64bit)
CentOSStream 9 (64bit) / Stream 10 (64bit)
Debian11 (64bit) / 12 (64bit)
Fedora42 (64bit)
openSUSE Leap15.4 (64bit)
Oracle Linux8.6 (64bit) / 8.7 (64bit) / 8.8 (64bit) / 8.9 (64bit) / 8.10 (64bit) / 9.0 (64bit) / 9.1 (64bit) / 9.2 (64bit) / 9.3 (64bit) / 9.4 (64bit) / 9.5 (64bit) / 9.6 (64bit)
Rocky Linux8.6 (64bit) / 8.7 (64bit) / 8.8 (64bit) / 8.9 (64bit) / 8.10 (64bit) / 9.0 (64bit) / 9.1 (64bit) / 9.2 (64bit) / 9.3 (64bit) / 9.4 (64bit) / 9.5 (64bit) / 9.6 (64bit) / 10.0 (64bit)
Ubuntu22.04 (64bit) / 24.04 (64bit) / 25.04 (64bit)
※1GBプラン以上のご契約で利用可能です。

企業でよく利用されているのはCentOS(現在は開発終了Windows Server(VPS非対応)です。
CentOSの後継として人気なのが、AlmaLinuxRocky Linux
どちらもRed Hat系の安定した環境で、企業サーバーでもよく採用されています。

一方、個人開発や学習用途では軽くて情報量が多いUbuntu が人気です。
設定方法やトラブル解決の情報も豊富なので、初心者にも扱いやすいOSといえます。

今回私は、会社との親和性を考えてCentOSの後継となる AlmaLinux をインストールしてみました。
学習目的や実践環境に合ったOSを選んで、インストールを進めていきましょう。

OSインストール前にSSH接続する準備

OSインストールの前にまずSSHの設定をしてあげる必要があります。

VPSは構築前に初期設定が多くてめんどくさい部分もありますが、これを乗り越えると確実に成長できます。

頑張って取り組んでいきましょう!

※シンVPSの場合、OSインストール時に 公開鍵を自動生成して登録するオプションがあります!なので下記手順をスキップして、OSをインストール時に自動生成を使うだけでも鍵認証がすぐ使えるので非常に便利です。

シンVPSのSSH

※シンVPSは公式ヘルプページが一番分かりやすいのでそちらをご確認ください。

SSH Keyが自動生成出来るのでちょっと楽になるというイメージ。

  • シンアカウントログイン→SSH Keyの登録→任意の名前入力と自動生成→登録する→ダウンロード→完了
  • SSH Key→対象公開鍵コピー→サーバーへrootユーザーでSSH接続→公開鍵の登録→パスワード認証の無効化→完了

下記画像は私のシンVPS上のSSH Keyです。

最初に誤って作成したのがまだそのままで、2つVPS上に作成している状態w

本来はここ1つだけ登録されている状態です。(1つ削除予定)

SSHの役割と必要性

SSH(Secure Shell):サーバーに安全に接続して操作するための仕組みです。

  • SSHではなく普通のパスワードだけだと盗まれる危険があり心配
  • SSHを使うと、通信が暗号化されて安全
  • サーバーの操作(ファイル編集、アプリインストール、再起動など)リモートで行える

鍵認証(公開鍵・秘密鍵)の仕組み

鍵認証では、2つの鍵を使って本人認証します

鍵の種類置き場所役割
秘密鍵(private key)自分のPCサーバーに自分であることを証明する鍵。絶対に他人に渡さない
公開鍵(public key)サーバー秘密鍵とセットで認証を許可する鍵。サーバーはこの鍵を知っているとログインを許可

この自分のPCにある秘密鍵を使ってログインの要求を送り、サーバーにある公開鍵と照合。

一致すればrootパスワードを使わずに安全に自分だけがログイン出来る、そのような仕組みとなっています。

Mac/WindowsでSSH鍵を作る手順

ターミナルを開く

Mac:Finder → アプリケーション → ユーティリティ → ターミナル
Windows:PowerShell / Windows Terminal(OpenSSH Client 必須)

サーバーに接続してみる

ssh root@xxx.xxx.xxx.xxx

※VPSのIPアドレスに置き換えてください。

初回接続時に「Are you sure you want to continue connecting?」→ yesを入力
rootパスワードでログイン確認

SSH鍵認証を設定する

鍵の作成

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

※自分のメールアドレスに置き換えてください。

出力場所:

  • ~/.ssh/id_rsa(秘密鍵)
  • ~/.ssh/id_rsa.pub(公開鍵)

パスフレーズは任意(設定すると秘密鍵使用時に追加で入力が必要になりセキュリティ強化)

公開鍵をサーバーに登録

rootでログイン中に以下を実行:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

接続テスト:

ssh root@xxx.xxx.xxx.xxx -i ~/.ssh/id_rsa

→ パスワードなしでログインできればOK!成功です!

シンVPSでOSをインストール

それではSSH接続のための設定が完了したら、次はOSをインストールしていきます。

OSインストール出来たらシンVPSのコントロールパネルはこんな感じにOSを確認出来ます。

VPS契約イメージ
  • VPSパネルにログイン
  • 左側メニューか上部にあるOSインストールをクリック
  • 選択画面 → 任意のOS(AlmaLinux9等) を選択
  • rootパスワードまたはSSH Keyを選択
  • 設定を保存 → インストール実行

シンVPSでは、インストール完了後に「IPアドレス」と「rootパスワード」が発行されます。
これで初回ログインが可能になります。

一般ユーザーを作成してroot直ログインを禁止

これでコマンドターミナルやVPSのコンソールから自分のサーバーにログインすることが可能になりました。

しかしまだrootで直ログインが出来る状態だとセキュリティ的に良くないので、禁止して一般ユーザーを作成していきます。

※例として user という名前を使用しています。任意の名前に変更してください。

ユーザー作成と権限付与

useradd -m -s /bin/bash user
usermod -aG wheel user
mkdir -p /home/user/.ssh
cp ~/.ssh/authorized_keys /home/user/.ssh/
chmod 700 /home/user/.ssh
chmod 600 /home/user/.ssh/authorized_keys
chown -R user:user /home/user/.ssh

sudo権限確認

su - user
sudo whoami

root が返ればOK。
※sudoは一時的に管理者権限を使うコマンド

SSH設定を強化する(root&パスワードログイン禁止)

バックアップを取ってから設定変更:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vim /etc/ssh/sshd_config

Vimでの基本操作(編集中に混乱したら Esc でコマンドモードに戻る)

  1. ファイルを開く
  2. 編集モードに入る
  3. i を押す → 「挿入モード」に切り替わり文字を編集できる
  4. 編集内容を保存して終了
  5. Esc を押して コマンドモード に戻る
  6. :wq と入力 → 保存して終了
  7. 保存せずに終了
  8. Esc → :q! と入力 → 編集を破棄して終了
  9. 保存だけ(終了しない場合)
  10. Esc → :w と入力 → 保存のみ

以下を編集:

PasswordAuthentication no
PermitRootLogin no

反映:

systemctl reload sshd

OSを最新化して再起動

dnf -y update
reboot

再接続して AlmaLinux のバージョン確認:

cat /etc/redhat-release

→ 「AlmaLinux 10.x」最新と表示されればOK。

まとめ

VPSは自由度が高いぶん、初期設定がセキュリティのカギになります。

ここまで進めば下記の内容が完了出来ました。お疲れ様です。

  • SSH設定と接続
  • OSインストール
  • 一般ユーザーでSSHログイン可能
  • sudoでroot権限取得可能
  • root直ログイン禁止設定済み
  • パスワードログイン禁止
  • OS最新化

次はもうひとつのセキュリティ対策として、ファイアーウォール設定を行い更に外部からの攻撃に備えます。また次回の記事もお楽しみに!