スマートフォン・タブレットからインターネットサーバーオペレーション

APPW.jp
 
ConoHa VPS移設記/2GB・3コア → 4GB・4コア/Ubuntu 26.04 LTS

① SSHユーザー追加と鍵運用

2021年以前に組んだ設定をそのまま延命させてきたサーバーを、ConoHa VPS 4GB RAM・4コアへ引っ越す。 今回はその初回、サーバー申込み直後のroot接続から、作業用ユーザーの追加、鍵認証への一本化、 そして旧サーバーとの資産コピー用鍵の準備までを記録する。

作業端末: iPad mini(Termius) / 一部作業のみPCブラウザ併用

MIGRATION ROADMAP — 全17工程
  1. ① SSH、ユーザー追加
  2. ② IPv4/IPv6追加、netplan、ufw
  3. ③ Apache2
  4. ④ Let's Encrypt
  5. ⑤ PHP
  6. ⑥ MariaDB
  7. ⑦ WordPress
  8. ⑧ Dovecot、Postfix
  9. ⑨ Vsftpd
  10. ⑩ Python
  11. ⑪ llama.cpp、ChromaDB
  12. ⑫ Anaconda、Keras、TensorFlow
  13. ⑬ Node.js
  14. ⑭ MongoDB
  15. ⑮ Mosquitto
  16. ⑯ RabbitMQ
  17. ⑰ Supervisor

01作業環境の制約を整理する

今回の移設作業はiPad mini + Termiusを主軸に進める。ただしConoHa VPSのウェブコントロールパネルには、 iPad miniのSafariでは十分に動作しない機能があるため、コントロールパネル操作の一部はPCのブラウザを併用した。 一方でPCブラウザ上のウェブコンソール機能はキーボード入力に難があり、常用には向かない。

そこで、サーバー申込み時点でrootパスワードに加えてSSH Keyオプションを指定し、秘密鍵をダウンロード。 セキュリティグループ機能にIPv4v6-SSHを追加してポート22を開放し、Termiusを設定してrootで接続する構成をとった。 ウェブコンソールはあくまで最終手段として温存する。

02rootで接続し、パスワード認証を止める

Termiusでroot接続を確立したら、真っ先にパスワード認証を無効化する。鍵はすでに手元にあるので、 ここを先に締めておけば、この後の作業中に総当たり攻撃の対象になり続ける時間を最小化できる。

root@新サーバー
# vi /etc/ssh/sshd_config # PasswordAuthentication no に変更 # systemctl restart sshd
注意 この時点でTermiusのroot接続セッションは切らない。設定ミスで締め出された場合に備え、 別タブで新しい接続を試して鍵ログインが通ることを確認するまで、既存セッションを生かしたまま作業する。

03ログインユーザーを追加する

rootのまま、日常運用で使う作業ユーザーを作成する。adduserは対話式で、 ホームディレクトリ作成・プライマリグループ作成・パスワード設定までまとめて行ってくれる。

root@新サーバー
# adduser login-user Adding user `login-user' ... Enter new UNIX password: **** Retype new UNIX password: **** # usermod -aG sudo login-user

ここで設定するパスワードはリモートSSHでは使わない(パスワード認証は無効化済みのため)が、 sudo実行時とコンソール救済アクセス用に必要になるので、必ず設定しておく。

04新ユーザーに公開鍵を配置する

パスワード認証を切ってある以上、鍵を先に置かないと新ユーザーでは一切ログインできない状態になる。 Termiusで使っている公開鍵をここで登録する。

root@新サーバー
# mkdir -p /home/login-user/.ssh # vi /home/login-user/.ssh/authorized_keys # Termius側の公開鍵を貼り付けて保存 # chown -R login-user:login-user /home/login-user/.ssh # chmod 700 /home/login-user/.ssh # chmod 600 /home/login-user/.ssh/authorized_keys

05新しい接続で動作確認する

Termiusで新しいタブ・新しい接続設定を開き、login-userユーザー・鍵認証でログインできること、 sudo -iが通ることを確認する。ここで確認が取れるまではrootセッションを閉じないのが鉄則。

確認完了 新規タブからlogin-userで鍵ログイン、sudo実行まで到達したことを確認してから次に進んだ。

06rootアクセスの後片付け

作業ユーザーでの疎通が取れたら、root接続をTermiusから削除し、 /etc/ssh/sshd_configPermitRootLogin noを追加してsshdを再起動する。

login-user@新サーバー
$ sudo vi /etc/ssh/sshd_config # PermitRootLogin no を追加 $ sudo systemctl restart sshd

07旧サーバーとの資産コピー用SSH鍵

HTMLファイルなどの資産を旧サーバーから新サーバーへscpで移すため、両サーバー間で鍵認証できる状態を作る。 両サーバーともパスワード認証は無効化済みなので、サーバー同士が直接鍵で認証し合う必要がある。

当初はTermiusのエージェントフォワーディングでどちらのサーバーにも秘密鍵を置かずに済ませる案を検討したが、 有料オプションだったため見送り、移設専用の鍵ペアを作成する方式を採用した。

login-user@新サーバー
$ ssh-keygen -t ed25519 -f ~/.ssh/migrate_key -C "migration-temp" # migrate_key.pub を旧サーバーの authorized_keys に追加 $ scp -i ~/.ssh/migrate_key 旧ユーザー@旧サーバーIP:/path/to/file.html /path/to/dest/ # 新サーバー側から旧サーバーの資産をpullする形
運用メモ migrate_keyは最終版の資産コピーが完了するまで残す。全コピーが終わった段階で、 新サーバーから鍵ファイルを削除し、旧サーバーのauthorized_keysのエントリも忘れずに削除する。

08ここまでの状態

  • root接続はTermiusから削除済み、PermitRootLogin no設定・sshd再起動まで完了
  • 作業ユーザー login-user の鍵ログイン・sudo実行を確認済み
  • 移設専用鍵ペアによる旧サーバー資産のscpコピーを確認済み(migrate_keyは最終コピーまで保持)
2GB・3コア → 4GB・4コア移設記 次回: ② IPv4/IPv6追加、netplan、ufw →

『ConoHa VPS移設記 ① SSHユーザー追加と鍵運用』を公開しました。