開発

Xserver VPSでリモート開発環境を作る(Ubuntu 22.04の初期設定とSSH接続)

更新 約5分で読めます

やりたいこと

VS Codeを使って、リモートのサーバー上で開発の勉強をしたいと思いました。リモートにする理由は、複数のPCから同じ環境で開発したいからです。私の場合は、普段使っているデスクトップPCと、外出用のSurface Goの両方から使いたいと考えました。

サーバーには、次の環境をDockerで作る予定です。

  • フロントエンド: Vue.js
  • バックエンド: Go
  • データベース: MySQL

サーバー選び:GCEの無料枠では足りず、Xserver VPSに

最初は、GCE(Google Compute Engine)の無料枠で作ってみました。ところが、無料枠はスペックが低く、Dockerを起動するとCPUが100%に張り付いて、SSHでの接続もできなくなってしまいました。

お金がかかるのは仕方ないと思い、e2-medium(共有コアの vCPU・メモリ 4GB)で月額を見積もってみると、約25ドル。私のお小遣いでは少し厳しい金額です。

ほかを探して、Xserver VPSを契約しました。CPU 3コア・メモリ 2GBで、月額900円(12か月契約。2024年4月時点)です。

1. インスタンスの起動とアップデート

OSにUbuntu 22.04を選んでインスタンスを起動し、rootでSSHログインして、パッケージを更新します。

# apt update
# apt upgrade

2. 作業用のユーザーを追加する

ユーザーを追加して、sudoを使えるようにします(ユーザー名の yakaron は、自分の好きな名前に読み替えてください)。

# adduser yakaron
Adding user `yakaron` ...
Adding new group `yakaron` (1002) ...
Adding new user `yakaron` (1002) with group `yakaron` ...
Creating home directory `/home/yakaron` ...
Copying files from `/etc/skel` ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for yakaron
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]

# gpasswd -a yakaron sudo

パスワードなしでsudoを使えるように設定します。

# visudo

#最下行に下記を追加
yakaron ALL=NOPASSWD: ALL

visudoを実行すると、nanoエディタが起動します。終わらせ方が分からなかったのでメモしておくと、Ctrl + X で終了できます。

※パスワードなしのsudoは手軽ですが、そのユーザーでログインされると何でもできてしまいます。勉強用の環境だから選んだ設定です。大事なデータを置くサーバーでは、パスワードありのsudo(最後の行を足さない)をおすすめします。

3. WindowsからSSHで接続できるようにする

Windows側のPowerShellで、鍵を作ります。

> cd ~\.ssh
> ssh-keygen -q -t ed25519 -C '' -N '' -f xserv_id_rsa

xserv_id_rsa(秘密鍵)とxserv_id_rsa.pub(公開鍵)ができます。※ -N '' は鍵にパスフレーズを付けない指定で、手軽さを優先しています。秘密鍵が漏れたときの備えには、-N を外してパスフレーズを付けるほうが安全です。同じ .ssh フォルダに config というファイルを作り、次のように書きます。

Host dev-yakaron
    HostName xxx.xxx.xxx.xxx #サーバのIPアドレス
    User yakaron
    Port 22
    IdentityFile ~/.ssh/xserv_id_rsa
    ServerAliveInterval 60
    TCPKeepAlive yes

サーバー側に、公開鍵を登録します。

# su - yakaron
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ vi ~/.ssh/authorized_keys
内容は上記で作成したxserv_id_rsa.pubを貼り付ける
$ chmod 600 ~/.ssh/authorized_keys

PowerShellから、SSHで接続してみます。

> ssh dev-yakaron
Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 5.15.0-76-generic x86_64)
Last login: Sat Apr 27 23:09:00 2024 from XXX.XXX.XXX.XXX
yakaron@xXXX-XXX-XXX-XXX:~$

無事につながりました。

4. SSHのポートを変える

22番のままだと不正アクセスの試みが多いので、SSHのポートを変えます。

# vi /etc/ssh/sshd_config
Port 22
を
Port 任意のポート番号にする
# systemctl restart sshd

Xserver VPSの管理画面で、パケットフィルターに次の設定を足します。

フィルター手動で設定
プロトコルTCP
ポート番号上で設定したポート番号
許可する送信元IPアドレス全て許可

最後に、Windows側の ~/.ssh/config の Port を新しい番号に変えて、もう一度接続します。つながれば完了です。

ここまでで、どのPCからでもSSHでサーバーに入れるようになりました。

コメント

コメントを送る
運営者が確認してから掲載します(数日かかることがあります)。

FREE WEB TOOLSYAKARON Tools釣り・子育て・暮らしに使える無料のWebツール集 →