初心者がConohaVPSサーバーで開発環境を作る手順1。(ubuntu)
はじめに
- あとから忘れないようにするためのメモ。
- 手元のPCはwindows10から作業。
- 本番環境用のドメインとは別に、開発環境用のドメインを取得済み。
01.初回ログイン(rootでログイン)からユーザー作成
Conohaの管理画面から「コンソール」を立ち上げてrootでログイン
システムアップデート
まずはアップデート。
$ sudo apt update
$ sudo apt upgrade
一般ユーザー作成
# ユーザーを作成
$ adduser nakamura
(パスワードの設定)
# sudo 権限を追加
$ gpasswd -a nakamura sudo
# sudoが追加されたか確認
$ groups nakamura
(nakamuraが追加されているグループが表示される)
一般ユーザーログイン確認
PS C:\Users\nakamura> ssh nakamura@XXX.XXX.XX.XX
(パスワード聞かれてログインできたらok)
このままWindowsPowerShellから作業を続けます。
安全&楽に使えるように、公開鍵認証でログインできるようにします。
公開鍵認証だと何が安全なの?
一般的に、サーバーへのログインにはパスワードが必要です。しかし、パスワードを入力する際に、人に盗み見られたり、パソコンにインストールされているアプリケーション(ウイルスソフト含め)によって、入力内容筒抜けになったり、どこかに転送され盗まれる可能性があります。このような問題を回避するために、公開鍵認証という方法が使われます。
入力内容を盗み見るツールを「キーロガー」とよんだりします。
パスワード入力を使わないため、キーロガーなどの盗み見による攻撃を回避できます。また、公開鍵認証を使うことで、ログイン時に毎回パスワードを入力する必要がなくなります。
つまり、セキュリティ面だけでなく、使い勝手も向上します。
公開鍵認証でログインできるようになったら、一般的な「パスワード入力でのログイン」を禁止し、サーバーにログインする際には必ず「公開鍵認証」とすることでさらにセキュリティの向上ができます。
02.安全に使うための設定
ポートを変更して安全にする
22 -> 22222
公開鍵認証でログインできるように変更する
公開鍵認証のイメージ
- パソコン上で鍵と鍵穴をセットで生成しておく。
- 鍵穴をサーバー内の守衛室に置いておく。
- 鍵は、自分のパソコン内の鍵保管庫に置いておく。
- サーバーへログインする際、守衛さんに「鍵はこれです」と伝える(見せる)。
- 守衛さんは、守衛室にある鍵穴と照合して、OKなら通してくれる。
まず、サーバー上に守衛室(.sshフォルダ)を作ります。
サーバー内の自分の部屋(/home/nakamura/)に守衛室を作るので、すでに自分の部屋に守衛室がないか確認します。
$ cd /home/nakamura/ # 自分の部屋に移動
$ ls -la # 現在の場所のファイル一覧を表示
$ mkdir .ssh # .sshフォルダがなければ作成する(既にあったら不要。)
次に、鍵と鍵穴をセット作ります。これらを作る作業は、自分のPC上で行います。
# 鍵・鍵穴を作るコマンドを使うと、今いるディレクトリに作ってしまうので、
# 先に作りたいディレクトリに移動しておきます。
$ cd c:\Users\nakamura\
$ mkdir .ssh # 鍵保管庫を作ります。(守衛室と鍵保管庫が同じ名前でややこしいですね)
$ cd .ssh # 鍵保管庫の中に入ります。
# 移動した先で鍵を作成します
$ ssh-keygen -t rsa -f CONOHA_KAGI
# 鍵の名称をCONOHA_KAGIにしていますが任意で変更してください
CONOHA_KAGI 秘密鍵(クライアント用)
CONOHA_KAGI.pub 公開鍵(サーバー用)
鍵と鍵穴のセットができ上がったら、鍵穴をサーバーに転送します。
# 先ほど鍵・鍵穴を作成したフォルダに移動しておく
$ cd c:\Users\nakamura\.ssh
# コマンドでローカルからサーバーへファイルをコピーする
$ scp -P 22222 CONOHA_KAGI.pub nakamura@xxx.xxx.xxx.xxx:/home/nakamura/.ssh
# 作業ユーザーのホームディレクトリ下で作業
$ cd /home/gonbe/
$ cd .ssh
# 以下ファイルを作成する
$ touch authorized_keys
# クライアント側からリモートコピーしたファイルを認証用の鍵として追記する
$ cat .ssh/conoha_key.pub >> .ssh/authorized_keys
# 鍵を設置したディレクトリ及び認証用ファイルのパーミッションを変更する
$ chmod 600 /home/gonbe/.ssh/authorized_keys
# 鍵を設置したディレクトリ及び認証用ファイルの所有者を変更する
$ chmod -R go= ~/.ssh
$ chown -R nakamura:nakamura ~/.ssh
これで、鍵と鍵穴関連の準備は完了です。
次は、公開鍵認証(鍵と鍵穴)でログインできるように設定を変更します。デフォルトではパスワードログインが許可されており、公開鍵認証は禁止されている設定になっているはず。
公開鍵認証ができないうちにパスワード認証を禁止してしまうと面倒なので、ひとまず「公開鍵認証の許可」のみ行います。
# sshの設定ファイルを開き、以下設定を変更する
$ sudo nano /etc/ssh/sshd_config
PubkeyAuthentication yes
AuthorizedKeyFile .ssh/authorized_keys
ssh サービスの再起動
$ sudo service ssh restart
これで許可されたはずです。試しに公開鍵認証でログインしてみましょう。
公開鍵認証でログインする設定をパソコン側に施します。
$ cd c:\Users\nakamura\.ssh\
config 作成
そのほか初期のタイミングでやっておいた方が良い設定
hostname の設定
$ sudo hostnamectl set-hostname <hostname>
Ubuntu環境を日本語化
英語力の無さによりストレスを抱えたくないので、真っ先に日本語言語パックをインストールします。
$ apt install language-pack-ja-base language-pack-ja
$ update-locale LANG=ja_JP.UTF8
ロケールの変更できたか確認
$ locale -a
C
C.UTF-8
en_US.utf8
ja_JP.utf8 # 追加されているようです。
POSIX
$ echo $LANG
en_US.utf8
現状はまだ「en_US.utf8」でok。
再起動して設定が有効になったか確認
$ reboot
※再起動が完了したら再度rootでログインしてください。
$ echo $LANG
ja_JP.utf8
良さげ。
Discussion