質問: ### 状況 さくらのVPS(CentOS7)から指定されたRAFTELというリクルートが採用している 統合サービスの中のFTPSサーバへPut処理がしたいのですがFTPSサーバへ接続が出来ません。 プロトコル:TCP ポート:20/21 パケットフィルタ利用設定:利用しない VPS側のコマンドで相手のFTPSサーバへ接続するにはまず何を設定しどのようなコマンドを実行すれば良いのでしょうか?VPSで設定しているSSLは、無料のLet's encryptです。 Put先のFTPSサーバでは発信元IPアドレスをみてるのか、一般的なFTPクライアント(Filezilla、FFFTP、Cyberduck)などでは接続が出来ません。 FTPS接続時に発信元IPアドレスが制限されることはあるのでしょうか? 私自身はWindows10を使ってさくらのVPSのまずそもそも私が最初から大きく勘違いしているかもしれませんので少しでもヒントを頂けますと助かります。 ### 試したこと CentOS7にログインして一般ユーザーでコマンドで ``` $ ftp $ open hoge.hoge 220 FTP Server Ready Name(hoge.hoge: myuser) ``` と聞かれFTPアカウントを入力すると次に ``` 550 SSL/TLS required on the control channel Login failed. Remote system type is UNIX. Using binary mode to transfer files. ``` と表示されてそこから先に進めません。
回答: サーバ側でアクセス制御を行っている可能性もありますが、その場合にはユーザー名の入力前に弾かれそうな気がします。 `ftp` コマンドだと FTPs (FTP over SSL) に対応していない可能性があるので、代わりに `lftp` コマンドを試してみてください。 CentOS なら `yum` で lftp パッケージをインストールしておきます。 ``` $ sudo yum install lftp ``` ユーザー名 (USER) と 接続先 (SITE) を指定して接続するには、以下の通りコマンドを実行します。 ``` $ lftp -u USER SITE ``` なお、場合によっては lftp の設定ファイル (`~/.lftprc`) を編集しておく必要があるかもしれません。 lftpコマンドを使ってFTPs(FTP over SSL)する方法 (2018 Apr. 8th) > > 自分のホームフォルダ配下に `.lftprc` という隠しファイルを作成します。 > > > > ``` > $ cat ~/.lftprc > set ftp:ssl-auth TLS > set ftp:ssl-force true > set ftp:ssl-allow yes > set ftp:ssl-protect-list yes > set ftp:ssl-protect-data yes > set ftp:ssl-protect-fxp yes > set ssl:verify-certificate no > > ``` > > また、余談ですが FileZilla では接続時の設定で「暗号化」という項目があり、こちらで "FTP over SSL" を使うか選択することができます。(FileZilla では "FTP over TLS" 表記) **サイトマネージャーの画面 (例):** !画像の説明をここに入力