👋
VPS操作雑メモ
Ubuntu 22.04 amd64
<VARIABLE>
は変数を意味する。
一般ユーザーの作成
$ ssh ubuntu@<IP_ADDRESS># rootユーザーにsshログイン
$ sudo apt-get update # OSアップデート
$ sudo adduser <USER_NAME> # 一般ユーザー作成
$ sudo gpasswd -a <USER_NAME> sudo # 一般ユーザーにsudo権限を追加
$ su <USER_NAME> # 一般ユーザーにログイン
$ sudo apt-get update # パッケージリストの更新
$ sudo apt-get upgrade # パッケージの更新
$ sudo vim /etc/ssh/sshd_config # sshdの設定
ポートの変更
- Port 22
+ Port <PORT>
rootユーザーによるログインを禁止
- PermitRootLogin prohibit-password
+ PermitRootLogin no
パスワード認証を禁止
- PasswordAuthentication yes
+ PasswordAuthentication no
$ sudo service ssh restart # sshサービスの再起動
$ sudo apt-get install ufw # ufw のインストール
$ sudo ufw allow <PORT> # ポート解放
$ sudo ufw enable # ufwの有効化
$ sudo ufw status # 解放されているポートの確認
SSHの設定
$ sudo apt install openssh-server # opensshのインストール
$ sudo systemctl status ssh # sshサービスの状況確認(running)
$ sudo systemctl enable ssh # sshの有効化
$ mkdir .ssh
$ cd .ssh
$ vim authorized_keys # 公開鍵を入力
今後は以下のコマンドにより一般ユーザーでsshログインできるようになる。
$ ssh <USER_NAME>@<IP_ADDRESS> -p <PORT>
Nginxの設定
$ sudo apt install nginx # Nginxのインストール
$ sudo ufw allow 'Nginx Full' # 80番ポートと443番ポートを開く
$ systemctl status nginx # Nginxサービスの状況確認(running)
自分のIPアドレスにアクセスするとNginxのウェルカムページが表示される。
Let's Encryptの設定
$ sudo apt-get install certbot
$ sudo apt-get install python3-certbot-nginx
$ sudo vim /etc/nginx/conf.d/<DOMAIN_NAME>.conf
$ sudo systemctl stop nginx
$ sudo certbot certonly --standalone -d <DOMAIN_NAME> # 質問に答える
$ sudo systemctl start nginx
$ sudo vim /etc/nginx/conf.d/<DOMAIN_NAME>.conf
server {
listen 80;
listen [::]:80;
server_name <DOMAIN_NAME>;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name <DOMAIN_NAME>;
ssl_certificate /etc/letsencrypt/live/<DOMAIN_NAME>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<DOMAIN_NAME>/privkey.pem;
}
Nodeのインストール
$ sudo apt install nodejs # Node本体をインストール(いらないかも?)
$ nodejs -v # Nodeのバージョン確認
$ sudo apt install npm # npmのインストール
$ sudo npm install n -g # nのインストール
$ sudo n stable # 最新のNodeのインストール
$ sudo apt purge -y nodejs npm # 古いNodeとnpmをpurge
Dockerのインストール
$ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common # いろいろインストール
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # dockerのGPG公開鍵をインストール
$ sudo apt-get install docker-ce docker-ce-cli containerd.io # dockerのインストール
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ sudo usermod -aG docker <USER_NAME>
$ su - <USER_NAME>
これでいいのかな?
おまけ
localhost:3000の内容をnginxで流したい場合は,設定ファイルを以下のように書く。
server {
listen 80;
listen [::]:80;
server_name <DOMAIN_NAME>;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name <DOMAIN_NAME>;
ssl_certificate /etc/letsencrypt/live/<DOMAIN_NAME>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<DOMAIN_NAME>/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
Discussion