VPSのセットアップ

最近、自分はDockerにハマっていて、GitHubの方にいくつかコンテナを立ち上げるためのスクリプトを上げたりしている。だってホストの環境に依存せずにデプロイ出来るんですよ??最高じゃん。

とは言っても、当然ホスト側の整備は必要なので、今回はVPSのセットアップをおさらいしておく。

なお、当方の環境は以下の通り。

VPS

ConoHa

OS

ArchLinux

セットアップ

プランを選択し、サーバーが立ち上がったら、とりあえずローカルからパスワード認証でSSH接続し、以下の感じでセットアップしていく。

export TERM=linux

sed -i -e “s/#en_US.UTF-8/en_US.UTF-8/” /etc/locale.gen

sed -i -e “s/#ja_JP.UTF-8/ja_JP.UTF-8/” /etc/locale.gen

locale-gen

echo LANG=en_US.UTF-8 > /etc/locale.conf

export LANG=en_US.UTF-8

ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

いつも使うユーザーを作成

useradd -m -G wheel {user}

passwd {user}

visudo

env_keep = “Home”と%wheel ALL=(ALL) ALLのコメントアウトを外す

以降は一般ユーザーで作業する

su - {user}

 

認証方法の変更

ローカルでもう一つ端末を開き、ssh-keygenで公開鍵と秘密鍵を生成する。うち公開鍵の方(.pubが付いている方)をscpでサーバーに送る。送った公開鍵を、いつも使うユーザーのホームディレクトリ下に新たに.sshというディレクトリを作成し、そこにauthorized_keysの名で入れる。今後他の端末からアクセスするようになった時、公開鍵は随時authorized_keysに追加していくことになる。

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

最後に一旦rootになって、

sed -i -e “s/#Port 22/Port 8020/” /etc/ssh/sshd_config

sed -i -e “s/PermitRootLogin yes/PermitRootLogin no/” /etc/ssh/sshd_config

sed -i -e “s/#PubkeyAuthentication yes/PubkeyAuthentication/” /etc/ssh/sshd_config

systemctl daemon-reload

systemctl reload sshd

これでセキュリティも向上した。(完全に安全とは言っていない)