LoginSignup
0
0

VPS / AWS EC2の初期設定でやること一覧

Last updated at Posted at 2024-04-10

はじめに

半年ほど前からインフラを触るようになって、VPS のインスタンスを破壊・再構築することが多くなりました。
再構築するたびに記憶を掘り起こしながらセットアップするのも面倒なので、この記事に手順をまとめておきます。
EC2を立てた人でもやることは同じなので参考になるかと思います。

手順

1. root ユーザーでログイン

大抵の VPS はインスタンス作成時に秘密鍵をダウンロードするため、その鍵を使ってログインします。

ssh -i /path/to/private_key root@ip_address

場合によっては次のようなエラーが出ます。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0664 for '/path/to/private_key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

この場合、秘密鍵のパーミッションを変更します。

chmod 600 /path/to/private_key

再度先程のコマンドを実行すると無事ログインできます。

2. パッケージのアップデート

サーバーにログインしたらまずパッケージを最新にします。

apt update
apt upgrade

3. ユーザーの追加

root ユーザーは権限が強すぎるため、通常の作業は別のユーザーで行います。

adduser username
usermod -aG sudo username

Full Name や Room Number などは空でも構いません。
ただし、パスワードは強力なものにしてください。(この段階ではパスワードによるログインを禁止していないためパスワードが脆弱だと危険です)

4. SSH の設定

ローカルのマシンから秘密鍵を用いて作業用ユーザーにログインできるように、公開鍵を VPS に登録します。

ローカルマシンに鍵がない場合は作成します。

ssh-keygen -t ed25519 -f ~/.ssh/ed25519

公開鍵を確認してコピーします。

cat ~/.ssh/ed25519.pub

VPS にログインして作業用ユーザーのディレクトリに .ssh ディレクトリを作成し、公開鍵を登録します。

login username
mkdir ~/.ssh
vi ~/.ssh/authorized_keys

/etc/ssh/sshd_configで SSH の設定を変更します。編集するポイントは次の 4 点です。

  • ポート番号の変更
  • root ユーザーでのログインを禁止
  • 公開鍵によるログインを許可
  • パスワードによるログインを禁止
...
Port 53823 # ポート番号
...
PermitRootLogin no # rootログインを禁止
...
PubkeyAuthentication yes # 公開鍵によるログインを許可
...
PasswordAuthentication no # パスワードによるログインを禁止

変更後は SSH を再起動します。

sudo systemctl restart sshd

ローカルマシンに戻って~/.ssh/configに VPS の情報を追加します。

Host vps
  HostName ip_address
  User username
  IdentityFile ~/.ssh/ed25519
  Port 53823

これでローカルマシンからssh vpsでログインできるようになりました。

5. ファイアウォールの設定

ファイアウォールを設定して不要なポートを閉じます。

sudo ufw allow 53823
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

最後に再起動して設定を反映させます。

sudo reboot

6. (オプショナル) ホスト名を設定

マシンに名前をつけている人はホスト名を設定しましょう。

sudo hostnamectl set-hostname hostname

再起動で設定を適用します。

sudo reboot

7. (オプショナル) Dotfiles をダウンロード

dotfiles を github などで管理している人は VPS にも反映させましょう。

私は dotfiles の管理にyadmを使っているので、まずは yadm をインストールします。

git clone https://github.com/TheLocehiliosan/yadm.git ~/.yadm-project
sudo ln -s ~/.yadm-project/yadm /usr/bin/yadm

dotfilesをclone

yadm clone https://github.com/piny940/dotfiles.git
yadm submodule update --init

.ssh/authorized_keysだけはすでにサーバー上にあるので、レポジトリの状態に合わせます。

yadm checkout -- ~/.ssh/authorized_keys

yadm のクラス名を設定します。

yadm config local.class classname

(オプショナル) fzf をインストール

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

8. (オプショナル) Starship のインストール

starshipでターミナルの見た目をいい感じにします。

curl -sS https://starship.rs/install.sh | sh

~/.bashrc~/.zshrcに次の行を追加します。

eval "$(starship init bash)"

source ~/.bashrcsource ~/.zshrcで設定を反映させます。

9. Github の設定

Github に SSH でアクセスするための設定を行います。
私は秘密鍵を全マシンで共有しているので、秘密鍵をローカルから scp でコピーします。

scp ~/.ssh/ed25519 hostname:~/.ssh/ed25519
scp ~/.ssh/ed25519.pub hostname:~/.ssh/ed25519.pub

VPS のセットアップの手順は以上になります。

最後に

今回は VPS のセットアップ手順をまとめました。
これで VPS を破壊してもすぐに再構築できるようになりました。
もし間違いや改善点があれば教えていただけると幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0