Xserver VPSでリモート開発環境を作る(Ubuntu 22.04の初期設定とSSH接続)
やりたいこと
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でサーバーに入れるようになりました。



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