レンタルサーバーのFTP接続情報と設定があっているかftpコマンドで確認する方法

HP製作あるあるだと思うんですが、FTPのアカウントを作って外注先に渡すときがあると思います。(勝手にあるあるだと思っている)

「このFTPアカウント使ってアップしてください～」みたいな事をやるために、外注先用のFTPアカウント作成するのですが、セキュリティだったり誤操作防止の為にそのアカウントで接続できるディレクトリを制限する設定をしたりするのです。
このディレクトリ設定があっているかどうかの確認をしたいというわけです。
FileZillaとかFTPツールを使って確認するのもありですが、いちいち接続先情報を登録するのも面倒くさい...そんな方におすすめです。

# 忙しい人向け、結論どうやるか
ターミナルをひらいて以下のコマンドを順に実行していきます。
```
ftp
ftp > open サーバー名 ポート番号
Name(hoge.com:account): ユーザー名
Password: パスワード
```
各コマンド入力後はEnterを押してください。
`open`以降は指示を出してくれるのでわかりやすいと思います！

# 接続の方法について
`ftp`コマンドを使用します。一瞬で終わるのでおすすめです！

用意するもの
- ターミナル
- FTPアカウント情報(サーバー名、ポート番号、ユーザー名、パスワード)

## STEP1: ターミナルを開いて`ftp`と入力
```
ftp
```
と入力してEnter。そうすると
`ftp>`となる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297279/8fba0492-31f2-7cb9-88b4-ebf1aa18fde1.png)

## STEP2: `open サーバー情報 ポート番号`を入力する。
```
open server.hoge.jp
open server.hoge.jp portnumber
```
この時に、ポート番号が`21`の場合にはポート番号を省略してサーバー情報だけでもOK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297279/b78e7335-faea-3ea3-041d-ccf3be112b9b.png)


うまく接続できると
```
Connected to hoge.jp
220 FTP Server ready.
```
のようになります(画像はXserverに繋げようとしている時)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297279/33ec841c-fd44-278c-a595-c15854154463.png)

## STEP3: ユーザー名入力
```
Name(hoge.com:account):
```
となるのでユーザー名を入れてEnterを押してください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297279/b9198bf0-c01e-277f-9eed-1474f1462edf.png)

## STEP4: パスワード入力。接続完了
ユーザー名を入れてEnterを押したら
```
331 ftp@hoge.comのパスワードを入力してください
Password:
```
となるのでパスワードを入力してEnterを押してください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297279/2ec7769b-aecf-78a6-722b-53ac943292ba.png)

認証がOKであれば接続が完了します。
```
230 User ftp@hoge.com logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297279/10a0a56e-09f8-9ea4-065a-c9ba42062512.png)

接続テストだけでよければこれで完了

## STEP5: `ls`してみる
アカウントで制限しているディレクトリにきちんとなっているかは`ls`コマンドでディレクトリの中身を確認してみるとわかりやすいと思います。

```
ls
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/297279/52e268d7-4235-6208-ae3c-8be7ff6c5ba2.png)

:::note warn
pwdでパスを取得するとわかりやすいのですが、サーバーによっては制限されてたりします。
なので`ls`でディレクトリの中身を見るなどが無難かなと思います
:::

以上で確認完了です！
接続を解除するときには`exit`と入力してください

# ディレクトリ制限について
たとえば
```
~/hoge.com/
├── public_html/
│   └── wp/
├── mail/
└── htpassword/
```
とか
```
~/
├── www/
│   └── wp/
├── bin/
├── log/
└── db/
```
などなど、レンタルサーバーのディレクトリ構成があり、外注さんがアクセスできるのは`wp`ディレクトリの中だけだったり、`wp-content`の中だけに制限をしたいんですね。
なのでFTPのアカウント作成時に、
```
/home/server_name/hoge.com/public_html/wp/
/home/server_name/www/wp/
```
とかってディレクトリ制限をかけて設定するのですが、これがたまに間違うんです。。。
間違うとどうなるかというと、特段エラーを吐いてくれるわけでもなく、
「なんかFTP繋げたら何も表示されないんですが」
「なんかFTP繋げたらエラーが・・・」
と言われてしまうので、そうならない為に事前に接続チェックを行います。

# おすすめFTPツール: FileZilla
有料の物やAdobeの物など様々あり、どれがいいのか迷ってるあなたへ。
私も色々使いましたが、とにかく`FileZilla`にしておけば間違いないです。
無料で使いやすく、特段困ることもないのでおすすめです。

Xserverのインストール記事を置いておくので参考にしてください！

https://www.xserver.ne.jp/manual/man_ftp_filezilla_setting.php

# XserverとサクラのレンタルサーバーのFTP設定に関して
私がよく使う２つの会社のFTP関連の記事を置いておきます。
サクラのレンタルサーバーでは、ビジネスプラン以上でFTPアカウントの追加ができ、ライトやスタンダードプランでは初期のものだけになるので注意です！

https://www.xserver.ne.jp/manual/man_ftp_setting.php

https://help.sakura.ad.jp/mail/2122/

https://help.sakura.ad.jp/rs/2217/

# おわりに
`ftp`コマンド自体はこれで終わりではなく、本来の転送の機能があるのですが今回は接続確認だけに使うというやり方です。
FileZillaでいちいち登録するのが面倒くさかったのでこの方法を取っていたのですが…
もしかしたらもっと楽な方法あるかもしれないですね！
誰かの役に立てば幸いです。