Ubuntuの初期設定メモ
さくらのVPSでUbuntuサーバーを借りたので構築メモ
今回使用するスペック
16GBプラン
- CPU: 仮想8core
- メモリ: 16GB
- SSD: 800GB(今回はキャンペーン中だったので1600GB)
- リージョン: 東京第2
- 購入台数1台
- SSHキーは自分で設定したかったので初期設定なし
- スタートアップスクリプトなし
パスワードを保管しておく
コンソールパネルを開く
- 電源操作から起動
- コンソールを開く
- ログインして先程メモったパスワードを入力
Ubuntuの初期設定
リポジトリ、パッケージの最新化
sudo apt update
sudo apt list –upgradable
sudo apt upgrade
時間設定
以下のコマンドでタイムゾーンの確認。今回は元々日本の設定になっていた
timedatectl status
ロケールの設定
ロケールも元々合わせてあった
localectl status
ファイアウォールの設定
# UFWの有効化
sudo ufw enable
# ポートの開放
sudo ufw allow 22
# ポートの閉鎖
sudo ufw deny 22
# ポートの開放状況確認
sudo ufw status
ドキュメント: https://ubuntu.com/server/docs/security-firewall
SSH接続設定
# Open SSHサーバーが起動しているか確認
systemctl status sshd.service
# インストールされていない場合は以下
sudo apt install openssh-server
# ssh設定ファイル下へ移動
cd /etc/ssh
# 設定ファイルを念のため残しておく
sudo cp -p sshd_config sshd_config.copied
# sshdファイルの編集ができる
sudo vim ssh_config
クライアントPCでssh接続を試す。コンソールを参照して接続用コマンドもメモっておく
ssh username@xxxxxxxxxxxxxx.sakura.ne.jp
このままだと毎回パスワードを入力しなければならず安全でないので、公開鍵認証を導入する
クライアント側で以下を実行。今回はさくらVPSなのでid_sakura_dev_rsaという名前をつけた
cd ~/.ssh
# 鍵の生成
ssh-keygen -t rsa
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):id_sakura_dev_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
# サーバー側にキーをコピーする
ssh-copy-id -i id_sakura_dev_rsa.pub username@xxxxxxxxxxxxxx.sakura.ne.jp
# 以下でログインできたら成功(接続するときに毎回使用するのでメモる)
ssh -i ~/.ssh/id_sakura_dev_rsa username@xxxxxxxxxxxxxxx.sakura.ne.jp
VPSサーバー側
SSHでの接続ができるようになったのでセキュリティを強める
cd /etc/ssh
sudo vim sshd_config
port 56789 # 普段使わないport番号に変更
PublicAuthentication yes
PasswordAuthentication no
Use PAM no
ssh接続の最終的なコマンドをメモっておく
ssh -i ~/.ssh/id_sakura_dev_rsa -p 56789 username@xxxxxxxxxxxxx.sakura.ne.jp
sshdのサービスを再起動
sudo service sshd restart
更にファイアウォールも調整しておく
# ssh接続で使うportを開く
sudo ufw allow 56789
# 22はもう使わないので閉じる
sudo ufw deny 22
SSHが切断されないようにしたい
クライアントPC側でsshのconfigファイルを編集する
sudo vim ~/.ssh/config
1分毎に信号を送って接続が切れないようにする
Host *
ServerAliveInterval 60
パッケージのインストール
必須パッケージのインストール
gitがインストールされているか確認
sudo apt-get install build-essential procps curl file git unzip zip tmux
zshのインストール
sudo apt install zsh
さくらのVPSにはデフォルトでインストールされていた
oh-my-zshもインストール
dockerのインストール
dockerがインストールされているか確認
docker
dockerがインストールされていなかったので、以下を参照してインストール
権限は普段使うユーザーで実行できるようにしておく
sudo gpasswd -a mikinovation docker
Linux Homebrew
Macと同じようにbrewが使えると何かと便利なので入れとく
Pythonのインストール
brew install python3
pip3 install -U neovim
nvimのインストール
Pythonのサポートされたnvimをインストールする必要がある
sudo add-apt-repository ppa:neovim-ppa/stable
sudo apt-get update
sudo apt-get install neovim
ただこれだとnvimが最新バージョンでなかった。
# 一度削除
sudo apt remove neovim
#appimageをダウンロード
cd ~/Downloads
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage
chmod u+x nvim.appimage
# ファイルを展開
./nvim.appimage --appimage-extract
# ディレクトリを移動してシンボリックを貼る
sudo mv squashfs-root /
sudo ln -s /squashfs-root/AppRun /usr/bin/nvim
これでpythonのサポートされたnvimが使えるようになる
nvim
denoの導入
vimのパッケージ管理でdpp.vimを使用するために必要
Nodejs(volta)の導入
pnpmの導入
volta install pnpm
gituiをインストール
brewを使ってgituiをインストール
ripgrepのインストール
brewを使ってripgrepのインストール
vimで全体検索をできるようにする
Githubのssh接続設定
開発環境のportを開ける
- さくらのVPSのパケットフィルター設定
- カスタムで3000番port(使いたいport)を開けておく
- ファイアウォールを設定
自分のIPアドレスを調べる
https://www.cman.jp/network/support/go_access.cgi
sudo ufw allow from xxx.xxx.xxx.xxx to any port 3000
これで開発環境にもhttp接続できるようになる
DBのクライントインストール
postgreの場合
sudo apt install postgresql
psql -v
sudo service postgresql stop # サーバーを止めておく
weztermの設定(随時更新)
Windowsのhomeに.wezterm.luaを設置する必要がある
githubで管理したいが一時的にメモ
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
local act = wezterm.action
config.default_domain = 'WSL:Ubuntu'
config.keys = {
{ key = 'V', mods = 'CTRL', action = act.PasteFrom 'Clipboard' }
}
config.color_scheme = 'Rapture'
config.window_background_opacity = 0.85
config.font = wezterm.font("JetBrains Mono")
config.font_size = 10.0
return config
最新のvolarを利用する際に推奨されるwatchのインストール
Javaを使う場合にはSDKMANで管理