[Laravel-adminを導入しよう！その1] ConoHa VPSにCentOS Stream8をインストールしVSCodeでSSH接続できるようにする

1. [[Laravel-adminを導入しよう！その1] ConoHa VPSにCentOS Stream8をインストールしVSCodeでSSH接続できるようにする - Qiita](https://qiita.com/yuki-masaki/items/8d8e2f595f26a20cdf80) ←本記事
2. [[Laravel-adminを導入しよう！その2] CentOS Stream8にNginx、PHPをインストールする - Qiita](https://qiita.com/yuki-masaki/items/4d9c2fb4769512049f03)
3. [[Laravel-adminを導入しよう！その3] CentOS Stream8にLaravel9（PHP8、Nginx、MariaDB）をインストールする - Qiita](https://qiita.com/yuki-masaki/items/fe412f961b5164536c64)
4. [[Laravel-adminを導入しよう！その4] [CentOS Stream8 & Nginx] 無料のSSL証明書「Let's Encrypt」でSSL化する - Qiita](https://qiita.com/yuki-masaki/items/fc1e0d73c49d9afdda7e)
5. [[Laravel-adminを導入しよう！その5] Laravel-adminをインストールしSSL化する - Qiita](https://qiita.com/yuki-masaki/items/172bd66f26f9932906e0)

# 概要
本シリーズは、VPS上に構築したCentOSに、IT資産管理ツールを構築することを最終目的としています。
IT資産管理ツールのUIは、Laravelの管理画面ライブラリである「Laravel-admin」を使用する予定です。
本記事では、まず初めに、クラウド上に開発環境を構築する方法を説明します。
次回以降では、順を追って各種サービスのインストール手順を説明していきます。

# クライアントの構成
OS: Windows10
エディタ: VSCode（プラグイン：Remote - SSH）

# サーバーの構成
ConoHa VPSに以下の構成でサーバーを追加しました。
CPU: 1Core
メモリ: 512MB
SSD: 30GB
OS: CentOS Stream8
SSH Key: 未選択

# 開発用ユーザー「dev」を作成しsudo権限を付与する
ConoHa VPSのコントロールパネルからコンソールを開きます。
rootでログインし下記コマンドを実行します。

```bash
adduser -G wheel dev
passwd dev
usermod -a -G wheel dev
```

https://tutorialcrawler.com/centos-rhel/centos-rhel%E3%81%A7sudo%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/

# クライアント側でSSH接続用の鍵ペアを作成する
※ここからはクライアント（Windows10）のコマンドプロンプトで操作します。

https://qiita.com/uhooi/items/137de4578534c8e7e7f2

```bash
# .sshディレクトリに移動
cd .ssh
# 鍵ペア作成　ファイル名を指定⇒「conoha_rsa」、パスフレーズはなし（空欄）
ssh-keygen -t rsa -b 4096
```

これで.sshディレクトリに下記ファイルが生成されます。
* conoha_rsa（秘密鍵）
* conoha_rsa.pub（公開鍵）

# サーバー側でSSH設定をする
※ここからはサーバー（CentOS）のコンソールで操作します。

### セキュリティ強度を上げる

```bash
# ユーザーを切り替える
su dev
# 設定ファイルを開く
sudo nano /etc/ssh/sshd_config
```

下記設定に変更する。
* rootユーザーによるログインを許可しない
PermitRootLogin no

* パスワード認証を許可しない
PasswordAuthentication no

* パスワードなしを許可しない
PermitEmptyPasswords no

Ctrl + X　→　Enterで上書き保存する。

### サービスを起動

```bash
# サービスを起動
sudo systemctl start sshd.service
# 起動確認　「active(running)」と表示されていたらOK
sudo systemctl status sshd.service
```

### ネットワークの設定

```bash
# OS起動時に自動でネットワークに接続するようにする
sudo nmcli c mod eth0 connection.autoconnect yes
```

### 公開鍵の登録

```bash
# .sshディレクトリに移動
cd ~/.ssh
# conoha_rsa.pubを作成
nano conoha_rsa.pub
```

クライアント側で作成した公開鍵（conoha_rsa.pub）の中身をクリップボードにコピーし、
コンソールの「テキスト送信」にペーストします。
公開鍵の中身がペースト出来たら上書き保存します。

```bash
# 空のauthorized_keysを作成する
nano authorized_keys
# conoha_rsa.pubをauthorized_keysに追記する
cat conoha_rsa.pub >> authorized_keys
# 所有者（ログイン中ユーザー）以外のアクセスを許可しない
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys
# 登録済みの公開鍵を削除しておく
rm conoha_rsa.pub
```

# クライアント側からSSH接続確認をする
※ここからはクライアント（Windows10）で操作します。

### コンフィグを追加
「.ssh/config」をテキストエディタで開き下記設定を追加します。

```
  Host {ホスト名等を入力}
  HostName {ホスト名}
  User dev
  Port 22
  IdentityFile ~\.ssh\conoha_rsa
```

コマンドプロンプトでSSH接続ができるか確認します。

```bash
ssh -i conoha_rsa dev@{ホスト名}
```

### VSCodeからSSH接続を行う
VSCodeの拡張機能「Remote - SSH」をインストールします。
リモートエクスプローラーに、前項で追加した接続先が表示されます。
接続先を右クリックし「Connect to Host in Current Windows」を選択してSSH接続をします。
![スクリーンショット 2022-04-21 103511.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1140967/fae605f0-d1b0-e775-64e4-cbeb7ddd1c62.png)

# 参考サイト
[CentOS / RHELでSudoユーザーを作成する方法 - Tutorial Crawler](https://tutorialcrawler.com/centos-rhel/centos-rhel%E3%81%A7sudo%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/)
[CentOS7.3でSSH接続(公開鍵認証)する方法 - Qiita](https://qiita.com/uhooi/items/137de4578534c8e7e7f2)