2012-07-20 24 views
9

Używam lftp do wysyłania plików na serwer sftp, ale nie wiem jak połączyć się z kluczem i hasłem.lftp z kluczem + frazą hasła?

Więc SFTP, mogę to zrobić:

sftp -i .ssh/id_rsa.mykey [email protected] 
Enter passphrase for key '.ssh/id_rsa.mykey': my passphrase here 

Tak, jak mogę lftp korzystania z tej metody łączącej?

+0

lftp jest klientem, który obsługuje protokoły mulitple (ftp, ftps, sftp, ...), więc jaki protokół próbujesz użyć? ftp na przykład nie obsługuje uwierzytelniania kluczem publicznym, więc utknąłeś w usename + password. – mata

+0

Używam sftp, więc mogę użyć hasła z moim kluczem. Próbuję tego: ** lftp -e "set ssl: plik-klucza .ssh/id_rsa.mykey" sftp: //my.host.fr** ale to nie zadziałało ... – Hakadel

+0

dlaczego nie " t używasz polecenia 'scp' lub' sftp', które oferują lepsze wsparcie dla protokołów opartych na ssh ... co wydaje się działać z lftp używa 'ssh-add' do dodania klucza prywatnego do działającego' ssh-agent ', które następnie używa lftp. – mata

Odpowiedz

15

Musisz podać nazwę użytkownika i po prostu przekazać cokolwiek jako hasło, aby pominąć pytanie.

lftp -u user,xxx sftp://... 
+6

'lftp -u użytkownik, sftp: // nazwa_hosta' również działa (zauważ przecinek) –

+0

Z jakiegoś powodu to nie działa, jeśli musisz wysłać klucz prywatny ORAZ hasło. Hasło nie jest wysyłane lub nie jest wysyłane poprawnie. –

2

lftp nie wydaje się przechodzić lub nie użyć pliku z określonej tożsamości „SSL: key-file” z SSH, należy określić go w sftp: connect-programu opcji: „ssh -a -x -i yourprivatekeyfile "

To powinno zadziałać.

5

wystarczy dodać

 sftp:connect-program "ssh -a -x -i yourprivatekeyfile" 

do swojej lftp.conf, jak większość ustawień można ustawić na stałe tam

11

Odpowiedź opiera się Jean-Luc Boss i Wiak-tych, ale nieco bardziej wyraźne:

Aby połączyć się z serwerem, lftp używa polecenia ssh, domyślnie ssh -a -x. Nie ma jawnej opcji zmiany pliku klucza, ale jak zauważyłeś, ssh ma, więc musimy ustawić lftp, aby połączyć się przy użyciu ssh -a -x -i <keyfile>, zanim się połączy.

Można to zrobić na kilka sposobów:

  • Jeśli używasz interaktywny wiersz polecenia lftp za uruchom następującą komendę przed podłączeniem:

    set sftp:connect-program "ssh -a -x -i <keyfile> 
    
  • Jeśli jesteś określając kilka poleceń do lftp przy użyciu -c, po prostu dodaj tę komendę do początku sekwencji poleceń:

    lftp -c 'set sftp:connect-program "ssh -a -x -i <keyfile>"; connect sftp://[email protected]; mirror -eR files; ...' 
    
  • Jeśli zawsze chcesz użyć tego samego klucza, po prostu dodaj tę set ... linię z pierwszego punktu do pliku ~/.lftprc (lub jedną z innych opcji pliku konfiguracji wymienionych w man lftp).