0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Conoha VPSでUbuntuサーバーを構築する方法

Last updated at Posted at 2020-06-06

環境

  • ローカル環境:Windows 10
  • 構築するサーバー:Ubuntu 18.04 LTS

サーバーの追加

Conoha VPSのメニューから、サーバー追加を選択して、サーバーを追加する。
注意すべきポイントは以下のとおり。

  • イメージタイプはUbuntu 18.04
  • rootパスワードを設定して、忘れないようにする。
  • SSH Keyは使用しない(あとから設定する)
  • 接続許可ポートは全て許可
  • ネームタグは後から変更できる(特に影響はない)
  • それ以外の項目は特に設定しない

上記の項目に注意して、サーバーを追加する。

サーバーにアクセス

追加したサーバーの管理画面に移動する。
そこで、ネットワーク情報からサーバーのIPアドレスを参照する。(以下アドレスをx.x.x.xとする)

コマンドプロンプト(Winキーを押してcmdと押すと出てくる)を開いて以下のコマンドを入力すると、サーバーにssh接続できる

# x.x.x.xにrootというユーザー名で接続する
ssh root@x.x.x.x
# ここでパスワードを問われるので、rootパスワードを入力

もし、sshコマンドがありませんと言われる場合はOpenSSHが入っていない可能性がある。

以下、sshで接続した状態での操作をサーバー上での操作、sshで接続していない状態での操作をローカル上での操作という。

新規アカウントを追加

続いて、サーバー上にアカウントを追加する。
sknjpnという名前で作成したが、もちろん好きな名前に変更すべきである。

# sknjpnという名前のアカウントを追加
adduser sknjpn
# パスワード以外の項目は何も書かずにEnterでよい

# sknjpnをsudoグループに追加
gpasswd -a sknjpn sudo

参考:ubuntu ユーザを追加して sudo 権限をつける

SSH接続出来るようにする

現在のパスワード認証ではなく、公開鍵認証にする。

新規作成したアカウントでアクセスする

一旦サーバーからログアウトする

exit
# ここで、コマンドプロンプトが落ちた場合は、再度コマンドプロンプトを立ち上げる。

鍵の作成とサーバーへの公開鍵の配置

以下はローカル上での操作であることに注意する。
公開鍵(id_rsa.pub)は名前通り公開して問題ないが、秘密鍵(id_rsa)は公開してはいけない。(OpenSSHがSSH接続時に参照するのみ)
サーバー上に上げるときはid_rsa.pubを用いる

# 鍵を作成する
ssh-keygen -t rsa
# 作成場所を聞かれるが、デフォルトのままにする。保存場所は次のコマンド入力に用いる。
# パスフレーズは毎回入力が面倒になるので何も入力せずEnterを押す

# 公開鍵をサーバーに送信する(sknjpnは新規作成したアカウント名に変更すること。C:\Users\sknjpn\.ssh\id_rsaは保存場所を入力)
scp C:\Users\sknjpn\.ssh\id_rsa.pub sknjpn@x.x.x.x:~/authorized_keys

# サーバーにログイン
ssh sknjpn@x.x.x.x

# authorized_keysを.sshファイル内に移動
mkdir .ssh
mv authorized_keys .ssh/

# サーバーからログアウト
exit

# サーバーにログイン
ssh sknjpn@x.x.x.x
# この時、パスワードの入力が求められないならば公開鍵認証が有効となっている。

参考:公開鍵暗号を用いてのSSH接続(きほん)

SSH接続時のセキュリティ設定

まず、パスワード認証より安全な公開鍵認証でサーバーにログインが可能となった。
これ以降でパスワード認証によってSSH接続してくるとしたら、それはたぶん貴方ではない誰かである。
というわけで、パスワード認証の禁止も含めたセキュリティ上の設定を行う。

# vimのインストール(たぶん、不要な場合が多いが念のため)
sudo apt install vim -y

# SSH接続の設定ファイルを修正
sudo vim /etc/ssh/sshd_config

以下のように設定してください(Vimによる編集は、iキーを押すと入力が出来るようになります)

  • #Port 22Port XXXXXに(XXXXXは1024から65535のいずれかの番号を入力。後で使うのでこの番号を覚える)
  • PermitRootLogin yesPermitRootLogin no
  • PasswordAuthentication yesPasswordAuthentication no
  • #ClientAliveInterval 0ClientAliveInterval 60

ClientAliveIntervalを設定することで、SSH接続が勝手に切断されなくなります。(しなくてもよい)
参考:(ssh 接続をタイムアウトしないようにする)[https://gist.github.com/koudaiii/dc6ea63fa0258c39987d]

設定が終了したら、ESCキーをおして、:wqと入力してEnterキーを押してください(上書き保存)

そうしたら、接続が問題なくできるか確認してください

# 変更の適用
service sshd restart

# ログアウト
exit

# XXXXX番ポートでログイン
ssh -p XXXXX sknjpn@x.x.x.x

これで接続出来たら成功です。

パッケージの更新

以下のコマンドを入力して、パッケージを更新してください。

sudo apt update
sudo apt upgrade -y

VSCodeでサーバーに接続する

これは、ほぼおまけです。
まず、Extensionsから、Remote Developmentをインストールしてください。
そうしたら、Remote Explorerアイコンをクリックして、上部の設定をContainersからSSH Targetsに変更します。
SSH Targetを追加すると、sshのコマンド入力が求められますが、この時にこれまでと同様にssh -p XXXXX sknjpn@x.x.x.xを入力すれば接続できます。

参考:VSCodeのRemote Developmentを使ってみる

もし最初からやり直す場合

サーバーを削除して、再度一番上から実行すれば良いのですが、一点注意がありまして、
ローカル上に、サーバーへのSSH接続情報が残っていると、新規作成したサーバーをなりすましだと認識して接続出来なくなるので、known_hostsファイルを修正する必要があります。

ローカル上にC:\Users\sknjpn\.ssh\known_hostsというファイルがあると思いますので、(id_rsaがあるのと同じ場所です)
そのファイルを削除するか、開いて接続したサーバー情報が書かれている行を削除してください。

さいごに

CentOSを使う場合などはいくつかのコマンドが異なりますし、基本的にUbuntuの場合の解説となっています。
またOpenSSHなど、ローカルの環境に応じて、書かれている通りに動かない場合があります。
もし、ご意見、ご感想等ありましたら、お気軽にコメントください。

以上で、解説は終わりです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?