lftp コマンド接続の仕方

2018年10月12日

こんにちは。
自分の諸事情で全然更新していませんでしたが・・・。
FTPについて書きたいと思います。

FTPサーバに接続をするために、ソフトを使用しています
しかし、自分の諸事情でコマンドを使用しなければいけなくなったので、今回はコマンドでやってみました。
今回は “FTP接続方法だけ" について書きます。

自分の場合は、ちょっとめんどくさいやり方なので・・・箇条書と図で説明します。

1.パソコンから自宅サーバにSSH接続をする。
2.自宅サーバからVPSサーバにFTP接続をする。また、SSL通信で行う。

lftp

【設定環境】
・自宅サーバのOSは “Ubuntu"
・VPSサーバのOSは “centOS"
・PCのOSは “Windows7"
・PCから自宅サーバにSSH接続する場合は “Tera Term" を使用します。
・自宅サーバでFTP接続する場合は “lftp" を使用します。

【設定方法】
※1 パソコンから自宅サーバにSSH接続が出来ている前提とします。
※2 VPSサーバにはFTPサーバが構築されている前提とします。
※3 lftpのコマンドについては、省略させて頂きます。

1.自宅サーバに “lftp" をインストールする。

[user@localhost]# apt-get install lftp

2.自宅サーバに接続されている “ユーザ" で、その “ユーザ" から コマンドでFTPサーバに接続ができる設定をする。
※ユーザ全体にする場合は、"/etc/lftp.conf" で記述する。
1) 必ずホームディレクトリ内で設定する。
念のために、ホームディレクトリに移動する。

[user@localhost]# cd

2)".lftprc" を作成する。

[user@localhost]# vi .lftprc

内容

#aliasの設定
alias ls "ls -la"

#通信の設定
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
# ※4
set ssl:verify-certificate no

※4 “set ssl:verify-certificate no" については、SSL証明書について検証エラーが出てしまうために切断されてしまう。
そのため、オフにする。
なお、自分自身理解が出来ていない部分がありますので、ネットなのでお調べをして下さい。

3.接続

[user@localhost]# lftp -u 【ユーザ】-e "debug 10" ftp://【ドメイン or ipアドレス】:【ポート】

※【】は、ご自身が指定されている記述をして下さい。"ポート" が変更されている場合は、指定されているポート記述をして下さい。

実行が行われた場合
実行1)パスワードが聞かれます。パスワードを入力する。

[user@localhost]# lftp -u 【ユーザ】-e "debug 10" ftp://【ドメイン or ipアドレス】:【ポート】
パスワード:

実行2)パスワードが入力後

lftp 【ユーザ】@【ドメイン or ipアドレス】:~>

実行3)接続を確認する。
lsで確認。
lftp 【ユーザ】@【ドメイン or ipアドレス】:~> ls

実行内容
※一部変更させて頂きます。

---- dns cache hit
---- 【ドメイン】 (【ipアドレス】) ポート 【番号】 に接続中
<--- 220 (vsFTPd 2.2.2)
---> FEAT
<--- 211-Features:
<---  AUTH SSL
<---  AUTH TLS
<---  EPRT
<---  EPSV
<---  MDTM
<---  PASV
<---  PBSZ
<---  PROT
<---  REST STREAM
<---  SIZE
<---  TVFS
<---  UTF8
<--- 211 End
---> AUTH TLS
<--- 234 Proceed with negotiation.
---> OPTS UTF8 ON

【SSL証明内容が出力されます。】

<--- 200 Always in UTF8 mode.
---> USER 【ユーザ】
<--- 331 Please specify the password.
---> PASS XXXX
<--- 230 Login successful.
---> PWD
<--- 257 "/"
---> PBSZ 0
<--- 200 PBSZ set to 0.
---> PROT P
<--- 200 PROT now Private.
---> PROT P
<--- 200 PROT now Private.
---> PASV
<--- 227 Entering Passive Mode (【ipアドレス】,195,87).
---- データソケットを (【ipアドレス】) のポート 【ポート番号】 に接続中
---- Data connection established1
---> LIST -la
<--- 150 Here comes the directory listing.


【証明書の内容が出力されます。】


drwx------   37 5002      5002          4096 Jun 09 18:51 .
drwx------   37 5002      5002          4096 Jun 09 18:51 ..
          :
          :
---- Got EOF on data connection
---- データソケットを閉じています
<--- 226 Directory send OK.
copy: get hit eof
copy: waiting for put confirmation
copy: put confirmed store
copy: get is finished - all done

これで接続が出来たことになります。

【参考文献】
yuu_nkjm blog さん – コマンドラインからFTPSでFTPサーバ上のデータを取得
憩いの場 さん – lftp – 致命的エラー: Certificate verification: Not trusted
ITPRO さん -【lftp】FTPサーバに接続してファイルを転送する

【素材】
パソコン・ルータ・サーバの素材を使わせて頂きました。
Digipot さん –