# SFTP接続方法：FileZilla、Cyberduck、コマンドラインでの接続

Source: https://support.kapsulehost.com/ja-jp/sftp-access

SFTP(Secure File Transfer Protocol)を使うと、サーバー上のサイトのファイルに直接アクセスできます。このガイドでは、認証情報の確認方法からトラブルシューティングまで、接続に必要なすべてを解説します。

## SFTPとは何か、いつ使うべきか

KPanelに組み込まれているファイルマネージャーは、ファイル名の変更、設定の確認、単一のアセットのアップロードなど、簡単な編集には便利です。SFTPは、それ以上のことが必要なときに適したツールです。

- 一度に大量のファイルをアップロードまたはダウンロードする場合(サイトの移行、画像の一括アップロードなど)。
- ブラウザ経由のアップロードではタイムアウトしてしまうような大きなファイルを転送する場合。
- ローカルでファイルを編集し変更を反映させる開発ワークフローの一環として作業する場合。
- ローカルフォルダとリモートフォルダを同期できるGUIクライアントを使用する場合。
- KPanelのファイルマネージャーでは公開されていないログや設定ファイルにアクセスする場合。

SFTPは転送中のすべてのデータを暗号化するため、通常のFTPよりも安全です。KapsuleHostでは暗号化されていないFTP接続は提供していません。

![KPanelにおけるサイトのSSHおよびSFTP接続の詳細](https://support.kapsulehost.com/help/screenshots/sftp-access.df4a2e3e.webp)

## 前提条件

接続する前に、2つの準備が必要です。

**1. KPanelでサイトに追加されたSSHキー。**

KapsuleHostのSFTPはSSHキー認証を使用します。セキュリティ上の理由からパスワード認証は無効化されています。まだSSH公開鍵を追加していない場合は、先に[サイトへのSSHキーの追加](https://support.kapsulehost.com/ja-jp/adding-ssh-keys)ガイドに従ってから、このページに戻ってください。

**2. サイトのユーザー名。**

KapsuleHostの各サイトには専用のシステムユーザーがあります。これはKPanelのメールアドレスとは異なります。そのサイトに固有の短いユーザー名です。

確認方法は次のとおりです。
1. [kpanel.kapsulehost.com](https://kpanel.kapsulehost.com)でKPanelにログインします。
2. 左サイドバーの**ウェブサイト**をクリックします。
3. 接続したいサイトをクリックします。
4. **SSH / SFTP**ページに移動します。
5. このタブの上部にサイトのユーザー名が表示されます。通常は`mysite_com`や`myexamplesite_net`のような形式です。

**接続情報の一覧:**

| 項目 | 値 |
|---|---|
| ホスト | `cp1-kapsule.kapsulehost.com` |
| ポート | `22` |
| プロトコル | SFTP(FTPでもFTPSでもありません) |
| 認証方式 | SSHキーのみ |
| ユーザー名 | サイトのユーザー名(KPanel > Websites > [サイト] > Settings > SFTPで確認) |

---

## FileZillaで接続する

FileZillaは無料のクロスプラットフォームSFTPクライアントで、Windows、macOS、Linuxで利用できます。まだお持ちでない場合は[filezilla-project.org](https://filezilla-project.org)からダウンロードしてください。

### 設定手順

1. FileZillaを開きます。
2. **File > Site Manager**に移動します(WindowsではWindowsの場合は`Ctrl+S`、Macの場合は`Cmd+S`を押します)。
3. **ウェブサイトを追加**をクリックし、名前を付けます(例:「My KapsuleHost Site」)。
4. **General**タブで、以下の項目を設定します。

   | 項目 | 値 |
   |---|---|
   | プロトコル | **SFTP - SSH File Transfer Protocol** |
   | ホスト | `cp1-kapsule.kapsulehost.com` |
   | ポート | `22` |
   | ログオンタイプ | **Key file** |
   | ユーザー | サイトのユーザー名(例:`mysite_com`) |
   | キーファイル | **Browse**をクリックし、秘密鍵ファイルを選択します |

5. キーファイルには、KPanelで追加した公開鍵に対応する秘密鍵を選択してください。macOSおよびLinuxでは、秘密鍵は通常`~/.ssh/`に保存されています(例:`~/.ssh/id_ed25519`や`~/.ssh/id_rsa`)。Windowsでは`C:\Users\YourName\.ssh\`にあることが多いです。

> **Note:** 秘密鍵にパスフレーズが設定されている場合、接続時にFileZillaから入力を求められます。これは正常な動作です。このパスフレーズは秘密鍵ファイルを保護するためのもので、KapsuleHostのパスワードとは別のものです。

6. **Connect**をクリックして接続をテストするか、**OK**をクリックして保存し、後で接続します。

### 保存して再接続する

Site Managerに一度保存すれば、**File > Site Manager**から**Connect**をクリックするだけでいつでも再接続できます。FileZillaはツールバーのドロップダウンにも保存済みのサイトを表示するため、すばやくアクセスできます。

> **Tip:** FileZillaのSite Managerでは、初回接続時に**Always trust this host**のチェックボックスをオンにしておくと、今後の接続でホストキーの確認プロンプトが表示されなくなります。

---

## Cyberduckで接続する

CyberduckはmacOSおよびWindows向けの無料SFTPクライアントです。[cyberduck.io](https://cyberduck.io)からダウンロードしてください。

### 設定手順

1. Cyberduckを開きます。
2. **Open Connection**(ツールバーの地球アイコン)をクリックします。
3. ダイアログ上部のプロトコルのドロップダウンから**SFTP (SSH File Transfer Protocol)**を選択します。
4. 接続項目を入力します。

   | 項目 | 値 |
   |---|---|
   | サーバー | `cp1-kapsule.kapsulehost.com` |
   | ポート | `22` |
   | ユーザー名 | サイトのユーザー名(例:`mysite_com`) |
   | パスワード | 空欄のままにします |
   | SSH秘密鍵 | **Choose**をクリックし、秘密鍵ファイルを選択します |

5. **Connect**をクリックします。

初回接続時、Cyberduckはサーバーのホストキーのフィンガープリントの確認を求めます。**Allow**をクリックして進めてください。別のフィンガープリントでこのプロンプトが後続の接続で表示された場合は、承認せずにサポートに連絡してください。設定変更の兆候である可能性があります。

### ブックマークとして保存する

接続を今後のために保存するには、次の手順に従います。
1. 接続に成功したら、**Bookmark > New Bookmark**に移動します(Macでは`Cmd+Shift+B`を押します)。
2. ブックマークに名前を付けてダイアログを閉じます。ブックマークはCyberduckのブックマーク一覧に表示されます。

---

## ターミナルから接続する(Mac、Linux、WSL)

コマンドラインを使いたい場合、`sftp`コマンドはmacOS、Linux、Windows Subsystem for Linux(WSL)で利用できます。

### 基本的な接続方法

```bash
sftp mysite_com@cp1-kapsule.kapsulehost.com
```

`mysite_com`の部分は実際のサイトのユーザー名に置き換えてください。秘密鍵がデフォルトの場所(`~/.ssh/id_rsa`または`~/.ssh/id_ed25519`)にない場合は、`-i`フラグで指定してください。

```bash
sftp -i ~/.ssh/your_private_key mysite_com@cp1-kapsule.kapsulehost.com
```

初回接続時には、サーバーのホストフィンガープリントの確認を求められます。`yes`と入力してEnterを押してください。これはデバイスごと、キーごとに一度だけ発生します。

### 便利なSFTPコマンド

接続すると、`sftp>`プロンプトが表示されます。以下のコマンドでファイルの移動や転送を行います。

| コマンド | 内容 |
|---|---|
| `ls` | 現在のリモートディレクトリのファイル一覧を表示 |
| `lls` | 現在のローカルディレクトリのファイル一覧を表示 |
| `cd [dir]` | リモートサーバー上のディレクトリを変更 |
| `lcd [dir]` | ローカルマシン上のディレクトリを変更 |
| `pwd` | 現在のリモートディレクトリのパスを表示 |
| `lpwd` | 現在のローカルディレクトリのパスを表示 |
| `get [file]` | リモートからローカルへファイルをダウンロード |
| `get -r [dir]` | ディレクトリを再帰的にダウンロード |
| `put [file]` | ローカルからリモートへファイルをアップロード |
| `put -r [dir]` | ディレクトリを再帰的にアップロード |
| `rm [file]` | リモートサーバー上のファイルを削除 |
| `mkdir [dir]` | リモートサーバー上にディレクトリを作成 |
| `quit` | SFTP接続を終了 |

**例:ファイルをダウンロードする**
```bash
sftp> cd htdocs/wp-content/themes
sftp> get my-theme.zip
```

**例:ファイルをアップロードする**
```bash
sftp> lcd ~/Desktop
sftp> cd htdocs/wp-content/uploads
sftp> put my-image.jpg
```

---

## ファイルの場所について

接続すると、サイトユーザーのホームディレクトリ`/home/[siteuser]/`に移動します。

ディレクトリ構成は次のようになっています。

```
/home/mysite_com/
├── htdocs/              ← Your web root (main location for site files)
│   ├── index.php
│   ├── wp-config.php
│   ├── wp-content/
│   │   ├── themes/
│   │   ├── plugins/
│   │   └── uploads/
│   └── ...
├── logs/                ← PHP and access logs
└── tmp/                 ← Temporary files
```

WordPress(またはその他のアプリケーション)が配置されているウェブルートは`htdocs/`です。ほとんどの作業はこのディレクトリ内で行うことになります。サイトの構成によっては、代わりに`public_html/`という名前になっている場合もあります。接続時に`htdocs/`ではなく`public_html/`が表示された場合は、そちらを使用してください。

> **Note:** アクセスできるのは、自分のサイトユーザーに属するファイルのみです。`/home/[siteuser]/`より上の階層に移動したり、他のお客様のディレクトリにアクセスしたりすることはできません。これは仕様です。

---

## 接続時の問題のトラブルシューティング

### 「Connection refused」

接続が確立される前に明示的に拒否されました。

**確認事項:** ホスト`cp1-kapsule.kapsulehost.com`とポート`22`を使用していることを確認してください。よくある間違いは、ポート`21`(これはFTP用であり、SFTPではありません)を入力していることや、ホスト名の入力ミスです。

### 「Permission denied (publickey)」

サーバーは接続要求自体は受け入れましたが、認証を拒否しました。

**以下をそれぞれ確認してください:**
- **KPanel > Websites > [サイト] > Settings > SSH Keys**にSSH公開鍵が追加されていること。そこに表示されていない場合、サーバーはそのキーを把握していません。
- FileZilla/Cyberduckで正しい秘密鍵、つまりKPanelに追加した公開鍵と対になる秘密鍵を選択していること。
- キーにパスフレーズがある場合は、正しく入力できているか確認してください。
- 複数のキーがある場合は、誤って別のキーを選択していないか確認してください。

### 「Host key verification failed」

SFTPクライアントが以前このホスト名に対して別のホストキーを確認しており、不一致を警告しています。

**初回接続時:** フィンガープリントの承認を求められます。これは正常です。Acceptをクリックするか、`yes`と入力してください。

**異なるフィンガープリントで後続の接続が発生した場合:** サーバー側の設定変更を示している可能性があります。承認する前に[support@kapsulehost.com](mailto:support@kapsulehost.com)のサポートに連絡し、見た内容を伝えてください。

ターミナルで古いホストキーを削除するには、`~/.ssh/known_hosts`を編集し、`cp1-kapsule.kapsulehost.com`に該当する行を削除してください。

### 「Could not read from remote repository」または誤ったディレクトリ

サイトのユーザー名ではなく、KPanelのメールアドレスをユーザー名として使用した可能性があります。

**確認事項:** ユーザー名は、メールアドレスではなく、サイトのユーザー名(例:`mysite_com`)である必要があります。正しいユーザー名は**KPanel > Websites > [サイト] > Settings > SFTP**で確認できます。

### 接続がタイムアウトする

接続を試みた後、応答がないままタイムアウトします。

**考えられる原因:**
- ログイン失敗が繰り返されたことにより、お使いのIPアドレスがKapsuleHostのファイアウォールによって一時的にブロックされている可能性があります。[support@kapsulehost.com](mailto:support@kapsulehost.com)のサポートに連絡し、ファイアウォールのログを確認してもらってください。
- ネットワーク上のローカルファイアウォールやVPNが、ポート22でのアウトバウンド接続をブロックしている可能性があります。これを切り分けるために、別のネットワーク(例:モバイルホットスポット)から試してみてください。

---

## 関連記事

- [サイトへのSSHキーの追加](https://support.kapsulehost.com/ja-jp/adding-ssh-keys)
- [KPanelでのファイルマネージャーの使用](https://support.kapsulehost.com/ja-jp/file-manager)
- [SSHトンネル経由でのデータベースへの接続](https://support.kapsulehost.com/ja-jp/database-ssh-tunnel)
