ConoHa VPSでインスタンス構築 〜第4章:一般ユーザーを追加して公開鍵認証でSSHログイン編〜

ConoHaVPSユーザー追加

ここでは、新たなユーザーを作成し、そのユーザーがrootユーザーとしてログインできる設定を行います。迂回する形でrootユーザーとしてログインして、管理者権限の乗っ取り・サーバー乗っ取りのリスクを下げます。

かかかず
かかかず

この記事の設定の手順が多く、ターミナルも使い慣れていないので苦戦しました。

公開鍵の認証で困っている・ターミナルでひっかかっている方は、是非御一読ください。

全体的な流れ

詳細の手順の前に、第3章の「一般ユーザーを追加して公開鍵認証でSSHログインするまでの流れ」についてざっくり書いておきます。

一般ユーザーを追加

はじめに一般ユーザーを追加します。

sudoを設定

一般ユーザーが使えるコマンドをsudoで拡張します。

鍵を生成して一般ユーザーでSSHログイン

鍵を生成して、一般ユーザーでログインをします。

上記とこれまでの設定で、ConoHaのスタートアップガイドの設定は一通り終了します。

かかかず
かかかず

スタートアップガイドの流れ通りですが、やってみて悩んだ場所とか交えながら説明していきます。

詳細の手順

手順と方法

それでは、ここから詳細の手順についてです。スタートアップガイドに準じていきながら、実際に迷った部分の補足を加えながら説明していきたいと思います。

一般ユーザーを追加

まずは、ターミナルで一般ユーザーを追加しましょう。

VPSへログイン

ターミナルを利用して、VPSへroot権限のあるユーザーでログインします。

macのターミナルの利用方法は以下の記事も参考にしてみてください。

関連記事 ConoHa VPSでインスタンス構築 〜第3章:macのターミナルでSSH接続編〜

ターミナルで一般ユーザーを追加

ログインしたら、以下のコマンドをターミナルに入力します。ユーザー名は追加したい名前を入力しましょう。

adduser [ユーザー名]
コマンドは useradd じゃなく adduser

公式スタートガイドでのコマンドは「useradd」となっていますが、「adduser」を使用します。

というのも、後の手順でホームディレクトリに公開鍵のアップロードを行います。ので、ここではホームディレクトリも追加してくれるコマンド「adduser」を使用してユーザーを追加します。

# adduser [ユーザー名]
Adding user `[ユーザー名]' ...
Adding new group `[ユーザー名]' (1000) ...
Adding new user `[ユーザー名]' (1000) with group `[ユーザー名]' ...
Creating home directory `/home/[ユーザー名]' ...
Copying files from `/etc/skel' ...
New password: [パスワード]
Retype new password: [パスワード]
passwd: password updated successfully
Changing the user information for [ユーザー名]
Enter the new value, or press ENTER for the default
	Full Name []:  ←ENTER
	Room Number []: ←ENTER 
	Work Phone []:  ←ENTER
	Home Phone []:  ←ENTER
	Other []:  ←ENTER
Is the information correct? [Y/n] y

コマンドを入力すると上記のように実行されます。

パスワードを入力し、次にFull Name[]: ~Other []:までENTERを押していき最後に「y」を入力して完了です。

一般ユーザーとしてパスワードでログイン

以下のコマンドをターミナルに入力し、STEP.2で作成した一般ユーザー名・パスワードでVPSサーバーに接続します。

ssh [ユーザー名]@IPアドレス
パスワードログインを不可にしている場合の設定

rootの公開鍵を作った場合、パスワードのログインは不可になっています。その場合、一旦rootの権限で一般ユーザーにパスワードログインを許可する必要があります。

この場合は以下の手順を参考にして、パスワードログインを許可する設定に変更しましょう。

関連記事 第3章:macのターミナルでSSH接続編「パスワード認証を可能にする設定変更」

かかかず
かかかず

rootアカウントの場合コマンド入力欄は「#」で始まりますが、一般ユーザーは「$」です。

一般ユーザーにsudoを設定

一般ユーザーを追加しただけでは、鍵認証の設定を行うことができません。ので、次にsudoを設定しましょう。

sudoを設定することで、一般ユーザーでもroot権限が必要なコマンド操作が利用可能になります。

ちなみに:sudoとは?

sudoコマンドは、一般ユーザが管理者権限が必要なコマンドを実行するときに使用するコマンドです。 「スードゥー」、「エスユードゥー」、「スードー」など、人それぞれで呼び方は異なるようです。

VPSへログイン

ターミナルを利用して、VPSへroot権限のあるユーザーでログインします。

sudoを設定

早速sudoを設定しますが、CentOSとUbuntuでは使用するコマンドが多少異なります。ちなみに、スタートガイドではCentOSのコマンドです。

外部リンク ご利用ガイド sudoを設定する

この記事で使用しているのはUbuntuなので、以下のコマンドをターミナルに入力します。

gpasswd -a [ユーザー名] sudo

ターミナルに入力をしてエンターを押すと、以下がターミナルに表示され完了です。

Adding user [ユーザー名] to group sudo
一般ユーザーでログインしてテスト

完了したら、正しくsudoの設定ができているか確認してみましょう。

設定した一般ユーザーでログインして、以下のコマンドを実行してみてください。いわゆる「システムをシャットダウン」するコマンドです。

shutdown -r now

おそらく、ターミナルに以下のような表示が出ると思います。

User root is logged in on sshd.
User root is logged in on tty1.
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl reboot -i'.
かかかず
かかかず

端的に言うと「できないよ」と表示が出ます。

では、次に以下のコマンドをターミナルに入力してエンターを押してみましょう。

sudo shutdown -r now

初回はパスワードの入力が求められますが、上記のコマンドで、root権限を持つユーザーと同様にシステムシャットダウンができればOKです。

鍵を生成して一般ユーザーでSSHログイン

クライアントで鍵を生成してそれをサーバーに設置し、ターミナルから一般ユーザーでログインできるよう設定します。

かかかず
かかかず

あともう少しで完了します

鍵を生成する

はじめに、一般ユーザー用の鍵を生成します。

SSHの接続が解除された状態で、ターミナルから以下のコマンドを実行して、2048bitのRSA暗号を使用します。表示されるメッセージはすべてデフォルトで応答するので、そのままEnterキーを何回か入力していきます。

cd ~/.ssh
ssh-keygen -t rsa -b 2048

これにより、秘密鍵と公開鍵が作成されます。

chmodコマンドでアクセス制御のモードを変更

以下の「chmod」コマンドを使って、公開鍵のアクセス制御のモードを変更します。

$ chmod 600 ~/.ssh/id_rsa.pub

この時も、SSHの接続を解除した状態のターミナルで行います。

scpコマンドで公開鍵をSSHサーバーへ設置

「scp」コマンドで、公開鍵をSSHサーバーへ設置します。

$ scp ~/.ssh/id_rsa.pub [一般ユーザー名]@[IPアドレス]:~/.ssh/authorized_keys

これで設定は完了です。

接続のテストとパスワード認証の変更

最後に設定が完了したかのチェックをしましょう。ターミナルから一般ユーザーで接続し、問題なく接続できれば完了です。

ssh ユーザー名@IPアドレス

問題なく接続できたら、パスワード認証できないように変更しておきましょう。

以下の記事にある「パスワード認証を許可する設定変更」を参考にして「/etc/ssh/sshd_config」を編集しましょう。

関連記事 第3章:macのターミナルでSSH接続編「パスワード認証を可能にする設定変更」

かかかず
かかかず

これで終わりです!

さいごに

参考させていただいたQiitaの記事では、30分で完了・・・。ですが、初心者の自分で30分なんてのは到底無理でした(笑)

次回は、仕上げに接続許可のポート設定と、サーバーのイメージ保存を行います。

ConohaVPS

管理人がいじっている
VPSサーバー

ConoHa VPS

バックエンドやLinuxの知識が皆無の私が使用しているのは、VPSサーバーのConoHa VPSです。

この記事は、そんなVPSサーバーでNode.jsを色々いじってみた奮闘記です。

VPSサーバーは、一台のサーバー上にメモリなどのリソースやアプリケーションをユーザーごとに確保してくれるので、安定した環境を利用できます。また、root権限で利用できるため自由度が高く、CentOS、Ubuntu、Debian、FreeBSD、openSUSEのOSを使って、いろんな環境で開発・検証ができます。

そんな ConoHa VPS の特長は以下の通りです。

  • シンプルな料金体系
  • 最小構成なら月額682円(税込)で利用可能
  • 豊富なテンプレートで環境構築も用意
  • 初期費用・最低利用期間共になし

一般的な共用サーバーでは物足りない・・・。なんて方は豊富なテンプレートも揃ったConoHa VPSでトライしてみてください。

かかかず
かかかず

共用サーバーと比べ難易度は多少上がりますが、VPSサーバーはいろんなことができるのでめちゃ楽しくオススメです。

参考サイト

参考ConohaにVPSを設置して、SSHログイン、ポート番号変更、rootログイン禁止までを30分で!Qiita
カテゴリーのイラスト

同じカテゴリの記事一覧

ボタンの影

レンタルサーバー