ConohaVPSにUbuntu環境を構築する手順です。一般ユーザーの作成、SSH接続、rootユーザーのログイン禁止やパスワードログインの禁止などについて解説しています。
目次
- ConoHa VPSでUbuntuサーバーを構築する
- VPSにSSH接続
- 一般ユーザーの作成
- 一般ユーザー用のSSHキーの生成
- 一般ユーザー用の公開鍵の設置
- ログイン禁止設定
- スーパーユーザの権限が必要になったとき
ConoHa VPSでUbuntuサーバーを構築する
Conoha VPSに登録し、コントロールパネルからOSイメージのUbuntuを選択します。今回Ubuntuのバージョンは20.04とします。
今回はローカルからサーバーにSSH接続するので下にスクロールしてオプションのSSH KEYからキーの新規作成。
「+追加」を押すと画像のようなポップアップがでるので秘密鍵を「ダウンロード」します。
このキーはVPSへの接続に使用するので大切に保管しましょう。
SSH Key の項目を「キーを選択」、パブリックキーを選択できていることを確認して、VPSサーバーを追加(契約)します。
接続許可ポートを設定しておきましょう。
必要なのは
- SSH (22)
- Web (20/21/80/443)
です。
ConohaVPSのコントロールパネルから契約したVPSのページに入り、チェックを付けるだけで反映されます。
VPSにSSH接続
ではダウンロードした秘密鍵を使ってVPSにSSH接続してみましょう。
ツールはTeraTermを使います。
これはConohaVPSに公式記事があるのでそちらを参照。
これでConohaVPSに構築したUbuntu環境にSSHログインできました。
VPSに接続できたらまずはUbuntuのアップデートを実行します。
$ sudo apt-get update $ sudo apt-get upgrade
結構時間がかかります。
一般ユーザーの作成
新規にサーバー構築すると最初はスーパーユーザーである「root」アカウントしか存在しません。
rootアカウントはすべての権限を持ちあらゆる操作ができてしまうため、事故が起こりやすく普段使いには向きません。
そこで一般ユーザーを作成します。
$ sudo adduser 任意のユーザー名
実行するとそのままこのユーザーのパスワードを聞かれるので設定します。
その後下記の項目を尋ねられますが空欄で構いません。
- Full Name
- Room Number
- Work Phone
- Home Phone
- Other
エンターキーを押して進めます。
管理者権限付与
作成したユーザーに管理者権限付与を付与します。
gpasswd -a ユーザー名 sudo
これでこのユーザーで sudo コマンドが実行できるようになりました。
よほどのことがない限りrootユーザーでのログインはしませんが、一般ユーザーで管理者権限が必要な操作を行う場合はこの sudo コマンドで実行します。
一般ユーザー用のSSHキーの生成
一般ユーザーでSSH接続できるようにしましょう。
まずは一般ユーザー用のSSHキーを作成します。
TeraTerm に SSH キーを作る機能があるのでこれを利用します。
TeraTermを起動し接続画面で「キャンセル」をクリック。
「設定」の「SSH鍵生成」をクリックします。
鍵の種類で「RSA」を選択、ビット数を「2048」にして「生成」をクリック。
必要に応じて鍵のパスフレーズを入力し、「公開鍵の保存」「秘密鍵の保存」をクリック。
一般ユーザー用の公開鍵の設置
パスワードログインの許可
SSH ログインを行うためには一般ユーザの公開鍵をサーバーにアップする必要があり、そのためには一般ユーザでパスワードでログインしなければなりません。
しかし現状ではパスワードによるログインができない設定になっているため、まずはルートユーザーでログインし、設定を変更して一般ユーザがパスワードでログインできるように設定します。
いったんrootユーザーでVPSにログインして下記のコマンドを実行します。
vi /etc/ssh/sshd_config
Viエディタで sshd_config ファイルを開くコマンドです。
Viエディタの使い方についてはとりあえず下記を覚えておけばなんとかなります。
- 編集モードに入る:i
- コマンドモードに入る:escキー
- 保存して終了:コマンドモードで:wq
- 保存せずに終了:コマンドモードで:q!
PasswordAuthentication yes
に変更します。
sshd_config の編集内容を反映するためにはsshdをリロードする必要があります。
systemctl reload sshd
これでパスワードログインができるようになりました。
一般ユーザー用の公開鍵の設置
では改めてTeraTermで、今度は一般ユーザーでパスワードログインします。
先ほどTeraTermで作成した「公開鍵」をTeraTermの画面にドラッグ & ドロップします。
ファイル転送を行いますか?という画面が表示されるので
「SCP」をクリック。
そのままユーザーのホームディレクトリに「.ssh」というディレクトリ作成し、パーミッションを「700」に設定します。
mkdir .ssh chmod 700 .ssh
ホームディレクトリに設置した公開鍵を「.ssh」へコピーし「authorized_keys」へファイル名を変更し、パーミッションを「600」へ変更します。
mv id_rsa.pub .ssh/authorized_keys chmod 600 .ssh/authorized_keys
ホームディレクトリに設置した公開鍵は不要となるので削除します。
rm -f id_rsa.pub
これで先ほど作成した一般ユーザーでSSH接続ができるようになりました。
TeraTermで一度ログアウトし、SSHログインができるかどうか確認しておきましょう。
ログイン禁止設定
一般ユーザーでSSHログインができるようになったので、rootユーザーでのログインとパスワードログインを禁止しておきましょう。
再度ssh_configを編集します。
rootユーザーでログインするか、一般ユーザーでログインした状態からsuコマンドを使ってrootユーザーに切り替えます。
下記のコマンドを実行してsshd_configを開きます。
vi /etc/ssh/sshd_config
iキーでインサートモードに入り編集します。
root ログインの禁止設定
PermitRootLogin no
パスワードログインの禁止設定
PasswordAuthentication no
escキーでコマンドモードに戻り、:wq で保存して終了。
sshd のリロード
sshd_config の編集内容を反映するためにsshdをリロードします。
systemctl reload sshd
これでrootユーザーでのログインとパスワードログインを禁止できました。
TeraTermでrootログインとパスワードログインができなくなっていることを確認しておきましょう。
スーパーユーザーの権限が必要になったとき
rootでのログインができなくなりました。
今後スーパーユーザーの権限が必要になった時は
- sudoグループに追加されているユーザーでsudoコマンドを使用する
- sudoグループに追加されているユーザーでsuコマンドを使用してrootユーザーに切り替える
- sudoグループに追加されているユーザーでsshd_configを編集してrootログインを許可する
- ConohaVPSのコンソールからログインする
という手段があります。