Linux komut satırında FTPS sunucusuna bağlanmak için basit komut


17

FileZilla ile kolayca bağlanabileceğim bir FTP ve FTPS sunucum var. Linux CLI yöntemi arıyorum. Düşündüm lftp, ama garip görünüyor. Başka bir yol var mı?

İşte FTPS ile bağlanmak için Google'da bulduğum yöntem lftp. Ama umarım daha kolay bir yol vardır:

lftp -c 'open -e "set ftps:initial-prot ""; \
   set ftp:ssl-force true; \
   set ftp:ssl-protect-data true; \
   put test.txt; " \
   -u "USERNAME","PASSWORD" \
   ftps://HOSTNAME:990 '

Yukarıda aldığım kod başarısız olacak gibi görünüyor - henüz hoşlanmadığı gibi denemedim \, satırın sonunda olması gerektiğini biliyorum .

Çok daha basit bir astar arıyorum. İşte herhangi bir FileZilla istemciden nasıl bağlanır ve çalışır:

ftps://username:password@ftp.server.com/

Ayrıca, bu çalışır:

ftps://username:password@ftp.server.com/

Muhtemelen bunu iki farklı soruya ayırmalısınız.
Taegost

Yanıtlar:


10

Bunun lftp'nin 2013 sürümünde mevcut olup olmadığını bilmiyorum, ancak şimdi şunları yapabilirsiniz:

lftp -u YOUR_USER HOST_ADDRESS

Örneğin, 192.168.1.50kullanıcı ile ana bilgisayara bağlanmak için testyalnızca aşağıdakileri yazabilirsiniz:

lftp -u test 192.168.1.50

1
Benim için harika çalıştı. Bunu ve önündeki her şeyi reddetti.
ArtOfWarfare

9

Garip olarak, her iki tırnak tipine sahip uzun bir komut satırı kastediyorsanız, bundan kaçının. Bir komut dosyası kullanın ve bir yer imini kaydedin. Muhtemelen lftp'den daha iyi bir ftp istemcisi yoktur.

  1. lftp betiğinizi bir dosyaya kaydedin
  2. argüman olmadan lftp çalıştırma
  3. komut dosyasını kaynakla
  4. bir yer imini kaydedin.
  5. betiği sil (açık metin parolasından kurtulmak için)

Gelecekte yer işaretini kullanın. Yer imi için ssl seçeneklerinin kaydedilip kaydedilmediğini veya bu ayarları global lftp yapılandırma dosyası aracılığıyla sürdürmeniz gerekip gerekmediğini anlamanız gerekir.


Örnek komut dosyası.

$ cat lftp.ssl.commands
user moo foopass
set ftps:initial-prot "";
set ftp:ssl-force true;
set ftp:ssl-protect-data true;
open ftps://HOSTNAME:990

Örnek çıktı.

$ lftp
lftp :~> source  lftp.ssl.commands
lftp HOSTNAME:~> dir
`ls' at 0 [Connecting...]

6

Veya bunu bir bash betiğinde yapabilirsiniz:

#!/bin/bash
lftp <<SCRIPT
set ftps:initial-prot ""
set ftp:ssl-force true
set ftp:ssl-protect-data true
open ftps://<hostname>:990
user <user> <password>
lcd /tmp
cd <ftp_folder_hierarchy>
put foo.txt
exit
SCRIPT

Bu, /etc/lftp.conf veya ~ / .lftprc veya ~ / .lftp / rc dizinlerinde kalıcı lftp değişiklikleri oluşturmamalıdır.


3

bazı sunucularda başarısız olur, çünkü ssl ayarları içinde olmayan open komutundan önce geçirilmelidir. çalışma örneği:

lftp -c 'set ftp:ssl-allow true ; set ssl:verify-certificate no; open -u USERNAME,PASSWORD -e "cd /; mput LOCAL/PATH/TO/FILE/FILENAME.EXT; quit" HOST'

2

Yukarıdaki yapılandırmayla proftpd sunucusuna bağlanmayı deniyorum ama giriş yapamıyorum, bu yüzden denediğimde sorun yok.
1. Bir komut dosyası yapılandırma dosyası oluşturun

vi .lftprc

aşağıdaki içeriğe sahip:

set ftp: ssl-auth TLS
set ftp: ssl-force gerçek
set ftp: ssl-koruma-listesi evet
set ftp: ssl-koruma-veri evet
set ftp: ssl-koru-fxp evet
set ssl: doğrulama sertifikası hayır

  1. Bundan sonra, sunucuya bağlanın:

    lftp kullanıcı adı @ hostname

ve şimdi benim için her şey yolunda!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.