# クラウドサーバーへのSSH接続

Source: https://support.kapsulehost.com/ja-jp/cloud-servers-ssh-connect

SSH を使用すると、自分のターミナルからクラウドサーバーに root シェルアクセスでき、接続に必要なすべての詳細が KPanel のサーバーページに表示され、コピー可能な状態になっています。

クラウドサーバーはオペレーティングシステムから上の部分があなたのものです。つまり、ほとんどの作業はコマンドラインで行われます。このガイドでは、接続詳細の確認、キーまたはパスワードでの接続、キーの適切なセットアップ、ブラウザコンソールのフォールバック、およびほぼすべての失敗した接続に該当するいくつかのエラーについて説明します。

## 接続詳細の確認

1. [KPanel](https://kpanel.kapsulehost.com) にサインインします。
2. 左側のサイドバーで **Cloud Servers** をクリックして、サーバーをクリックします。
3. **Connection** カードを探します。

このカードには3つのクリップボードへコピーするフィールドがあります:

| フィールド | 説明 |
|---|---|
| **SSH Command** | ターミナルにペーストする準備ができた完全なコマンド |
| **IPv4 Address** | サーバーのパブリック IPv4 アドレス |
| **IPv6 Address** | サーバーの IPv6 アドレス (割り当てられている場合) |

![KPanel のクラウドサーバーの Connection カード](https://support.kapsulehost.com/help/screenshots/cloud-servers-ssh-connect.902ba66d.webp)

> **Note:** カードに「IP address will appear here once provisioning is complete」と表示されている場合、サーバーはまだ構築中です。クラウドサーバーのプロビジョニングは約60秒かかり、完了するとページが自動的に更新されます。

## SSH キーで接続する

サーバーを注文したときに **SSH Public Key** フィールドにパブリックキーをペーストした場合、キー認証はすでに設定されており、入力するパスワードはありません。

1. Connection カードから **SSH Command** をコピーします。
2. ターミナルにペーストして Enter を押します。

```
ssh root@203.0.113.1
```

SSH クライアントは一致するプライベートキーを見つけて自動的に認証します。キーが標準的でない場所にある場合は、明示的に指定してください:

```
ssh -i ~/.ssh/my-kapsule-key root@203.0.113.1
```

> **Tip:** キーはパスワードより簡単で安全です。覚えることも、フィッシング詐欺のプロンプトに入力することも、自動化されたパスワード推測攻撃に見つかることもありません。まだパスワードを使用している場合は、キーを生成して追加するのに約2分かかります。

### 初めてキーをセットアップする

サーバーではなく、自分のマシンでキーペアを生成します:

```
ssh-keygen -t ed25519 -C "your-email@example.com"
```

Enter キーを押してデフォルトの場所を受け入れ、プロンプトが表示されたときにパスフレーズを設定します。これで2つのファイルが作成されます:

- `~/.ssh/id_ed25519` は **プライベート** キーです。マシンから出ることはなく、どこにもペーストしません。
- `~/.ssh/id_ed25519.pub` は **パブリック** キーです。これはサーバーに提供するものです。

パブリックキーを出力して、`ssh-ed25519` プレフィックスと末尾のコメントを含む、行全体をコピーします:

```
cat ~/.ssh/id_ed25519.pub
```

サーバーを注文するとき、その行を **SSH Public Key** フィールドにペーストします。フィールド自体のヒントに明確に書かれています: 「Paste your public key to enable key-based authentication. If left blank, a root password will be emailed to you.」

> **Warning:** `.pub` なしでファイルの内容をペーストしないでください。それはプライベートキーであり、それを持っている人は信頼しているすべてのサーバーであなたとしてログインできます。プライベートキーを誤ってシェアした場合は、新しいペアを生成し、すぐにすべての場所でパブリックキーを置き換えてください。

すでに持っているサーバーにキーを追加するには、今日できるように接続して、パブリックキーの行を `/root/.ssh/authorized_keys` に追加します。

## パスワードで接続する

注文時に **SSH Public Key** フィールドを空白のままにした場合、サーバーがプロビジョニングされた後、root パスワードがメール送信されます。

1. Connection カードから **SSH Command** をコピーします。
2. ターミナルにペーストして Enter を押します。
3. プロンプトでメール送信された root パスワードを入力します。

入ったらすぐにそのパスワードを `passwd` で変更し、その際に SSH キーを追加します。メール送信されたパスワードは、認証情報が移動すべき距離より遠くに移動しています。

## ブラウザコンソール

**Browser console** は KPanel 内のターミナルを提供し、SSH クライアントなしで、ポート 22 を経由しません。自分のアクセスが壊れた時点での最適なツールです。

1. サーバーのページを開いて、アクションボタンで **Browser console** をクリックするか、`/cloud-servers/<server-id>/console` に移動します。
2. **Start console** をクリックします。KPanel はサーバー上でターミナルを HTTPS 経由で一度限りの認証情報で開始します。
3. **Username** と **Password** がページに表示され、**Copy credentials** ボタンがあります。ターミナルはページ自体に開かれ、ブラウザがそれらの認証情報を要求する場合があります。
4. 任意のシェルと同じように作業します。

> **Note:** コンソールセッションは 30 分後に自動的に停止します。新しいセッションを開始すると新しい認証情報が発行されるため、完了後は何もリッスンしている状態は残りません。ブラウザコンソールは、サーバー上に HTTPS が設定されたドメインが必要です。これはパネルを通じてインストールされたアプリを意味します。裸のサーバーでは、コンソールはサイレントに失敗するのではなく、そのことを伝えます。

コンソールを使用して、ロックアウトしたファイアウォールルールを元に戻したり、パスワードをリセットしたり、`sshd` 設定を修復したりします。通常の SSH で戻ってきたら、再度それが必要になることはありません。

## SSH アクセスを安全に保つ

ポート 22 は設計上、常に KapsuleHost サーバーファイアウォールで開いているため、ファイアウォール変更により完全にマシンからロックアウトされることはできません。

つまり、シェルのセキュリティはポートを非表示にするのではなく、認証方法に依存しています。ほとんどの作業を行う2つのことがあります:

- **キーを使用し、パスワードは使用しない。** その場合、推測されたパスワードは侵入方法ではありません。
- **fail2ban を有効のままにします。** デフォルトで有効になっており、SSH 認証に繰り返し失敗したアドレスをブロックします。サーバーの **Management** ページでスイッチを確認できます。

[Cloud Server Firewall and Security Management](https://support.kapsulehost.com/ja-jp/cloud-servers-firewall) は両方をカバーし、さらに独自のアプリケーションが必要とするポートのカスタムルールも含まれています。

## トラブルシューティング

**「Connection refused.」** 何もリッスンしていません。サーバーが KPanel で **Running** と表示されていることを確認し、オフの場合はオンにして、ブラウザコンソールを使用して `sshd` が実行中であることを確認します。

**「Connection timed out.」** トラフィックが到着していません。Connection カードから IPv4 アドレスを使用していることを確認し、独自のネットワークがアウトバウンドポート 22 をブロックしているかどうかを確認します。企業ネットワークまたはキャンパスネットワークの場合があります。

**「Permission denied (publickey).」** サーバーはキーを認識しません。`.pub` の行をすべてペーストしたことを確認し、クライアントが一致するプライベートキーを提供していることを確認してください。ssh コマンドに `-v` を追加して、試したキーを確認してください。

**「Permission denied, please try again」(パスワード)。** パスワードが間違っているか、キーを指定したためパスワード認証が無効になっています。キー、またはブラウザコンソールを使用します。

**「REMOTE HOST IDENTIFICATION HAS CHANGED.」** サーバーのホストキーは、クライアントが記憶しているものと異なります。これは [rebuild](https://support.kapsulehost.com/ja-jp/cloud-servers-rebuild) 後に予想されます。オペレーティングシステムが再インストールされたからです。`known_hosts` ファイルからそのIPアドレスの古いエントリを削除して、再接続します。何も再構築していない場合は、接続する前に停止して私たちに連絡してください。

**ファイアウォールルールで自分をロックアウトした。** ポート 22 は開いたままなので、これは珍しいことですが、サーバー内のルールがブロックした場合は、ブラウザコンソールを使用してそれを削除します。

上記のいずれかがシェルを取得しない場合は、[support@kapsulehost.com](mailto:support@kapsulehost.com) にサーバー名、接続元のアドレス、正確なエラーテキストを含めてメール送信してください。
