--- [article] title = "【備忘録】 このサイト用の VPS をセットアップしたときのメモ" description = "GitHub Pages でホストしていたこのサイトを VPS へ移行したので、そのときにやったことのメモ。99 % 自分用。" tags = [ "note-to-self", ] [[article.revisions]] date = "2022-10-28" remark = "公開" [[article.revisions]] date = "2023-08-30" remark = "ssh_config に IdentitiesOnly yes を追加" ---
はじめに

これまでこの blog は GitHub Pages でホストしていたのだが、先日 VPS に移行した。 そのときにおこなったサーバのセットアップ作業を書き残しておく。 99 % 自分用の備忘録。別のベンダに移したりしたくなったら見に来る。

未来の自分へ: 特に自動化してないので、せいぜい苦しんでくれ。

VPS

さくらの VPS の 2 GB プラン。 そこまで真面目に選定していないので、困ったら移動するかも。

事前準備
サーバのホスト名を決める

モチベーションが上がるという効能がある。今回は藤原定家から取って teika にした。 たいていいつも源氏物語の帖か小倉百人一首の歌人から選んでいる。

SSH の鍵生成

ローカルマシンで鍵を生成する。

teika.key はローカルからサーバへの接続用、github2teika.key は、 GitHub Actions からサーバへのデプロイ用。

SSH の設定

.ssh/config に設定しておく。

基本のセットアップ
SSH 接続

VPS 契約時に設定した管理者ユーザとパスワードを使ってログインする。

ユーザを作成する

管理者ユーザで作業すると危ないので、メインで使うユーザを作成する。 sudo グループに追加して sudo できるようにし、su で切り替え。

ホスト名を変える
公開鍵を置く

authorized_keys には、ローカルで生成した ~/.ssh/teika.key.pub~/.ssh/github2teika.key.pub の内容をコピーする。

SSH の設定

SSH の設定を変更し、少しでも安全にしておく。

  • Port を変更
  • PermitRootLoginno
  • PasswordAuthenticationno

そして設定を反映。

SSH で接続確認

今の SSH セッションは閉じずに、ターミナルを別途開いて疎通確認する。 セッションを閉じてしまうと、SSH の設定に不備があった場合に締め出しをくらう。

ポートの遮断

デフォルトの 22 番を閉じ、設定したポートだけ空ける。

ここでもう一度 SSH の接続確認を挟む。

GitHub 用の SSH 鍵

GitHub に置いてある private リポジトリをサーバから clone したいので、SSH 鍵を生成して置いておく。

GitHub の設定画面 から、この公開鍵を追加する。

設定はこう。

最後に接続できるか確認しておく。

パッケージの更新
サイトホスティング用のセットアップ
DNS に IP アドレスを登録する

このサーバは固定の IP アドレスがあるので、A レコードに直接入れるだけで済んだ。

使うソフトウェアのインストール
メインユーザが Docker を使えるように
HTTP/HTTPS を通す

80 番と 443 番を空ける。

リポジトリのクローン
certbot で証明書取得
サーバを稼動させる
感想

(業務でなく) 個人だと数年ぶりのサーバセットアップで、これだけでも割と時間を食ってしまった。 とはいえ式年遷宮は楽しいので、これからも定期的にやっていきたい。 コンテナデプロイにしたい気持ちもあるのだが、色々実験したい関係上、本物のサーバも欲しくはある。 次の式年遷宮では、手順の一部だけでも自動化したいところ。