Jak możesz zrobić jedną linijkę z sftp, aby zalogować się przy użyciu hasła w tej samej linii?

17

Czy istnieje opcja umieszczenia hasła w linii również w przypadku sftp?

linux~ $ sftp [email protected]:/DIRECTORY_TO_GO_TO/ 

Lubię to

linux~ $ sftp [email protected]:/DIRECTORY_TO_GO_TO/ -p PASSWORD? 
Daniel
źródło

Odpowiedzi:

13

Zasadniczo uwzględnienie hasła w wierszu poleceń jest uważane za zagrożenie dla bezpieczeństwa, ponieważ będzie widoczne dla każdego, kto może uruchomić ps / top, i może zostać zapisane w historii twojej powłoki.

Jeśli to możliwe, byłoby znacznie lepiej skonfigurować uwierzytelnianie oparte na kluczach.

Nie wierzę też, że będzie to możliwe dzięki sftp. Jest przeznaczony do bezpiecznego przesyłania. Jeśli naprawdę musiałeś zrobić coś takiego i nie masz innego wyboru, prawdopodobnie powinieneś spojrzeć na automatyzację z oczekiwaniem .

Zoredache
źródło
Ciekawy punkt!
Daniel
Jeśli to możliwe, byłoby znacznie lepiej skonfigurować uwierzytelnianie oparte na kluczach. To ma sens.
Net Runner
Ten adres URL jest zepsuty
André Perazzi
4
Nie mogę zrozumieć, dlaczego ludzie głosują za odpowiedzią, która nie zapewnia rozwiązania.
itoctopus
34

Jak wspomnieli inni, hasło wiersza polecenia powinno być ostatecznością.

Jeśli jednak nic innego nie jest możliwe; można przejść na ssh pass

sshpass -p <password> sftp user@host
Yogesh Nachnani
źródło
2
Powinno to być szeroko oceniane. Naprawdę przydatne jest posiadanie sshpass. Niektórzy dostawcy nie pozwalają na utworzenie folderu .ssh i scp jest również niedozwolony.
NetSquirrel
2
dobrze, że niektóre narzędzia mają twoje plecy: brew search sshpass- „Nie dodamy sshpass, ponieważ zbyt początkującym użytkownikom SSH zbyt łatwo psuje bezpieczeństwo SSH”.
oliver
4
To powinno być przyjęte rozwiązanie. PO zapytał, jak to zrobić - nie po porady dotyczące bezpieczeństwa (choć dobre intencje i poprawne).
ebr
6

Nie rób tego - ustaw uwierzytelnianie klucza publicznego SSH na automatyczne logowanie.

MikeyB
źródło
Czy sftp może to zrobić tak samo jak scp?
Daniel
1
@Daniel, zarówno sftp, jak i scp są zbudowane na SSH, co pozwala na uwierzytelnianie oparte na kluczach.
Zoredache
5

Wystarczy użyć Perla, Ruby lub Pythona, aby napisać skrypt, co próbujesz zrobić. W przypadku ruby ​​jest to po prostu (wzięte z dokumentów API net-sftp):

require 'net/sftp'

Net::SFTP.start('host', 'username', :password => 'password') do |sftp|

  # upload a file or directory to the remote host

  sftp.upload!("/path/to/local", "/path/to/remote")

end

Aby uzyskać więcej informacji http://net-ssh.rubyforge.org/sftp/v2/api/index.html

monomyth
źródło
paramiko to czysty python (bez dodatkowych bibliotek) i działa naprawdę dobrze
qwertzguy
3

Jak podają inne odpowiedzi, użyj uwierzytelniania za pomocą klucza publicznego. Istnieje świetna, choć nieco przestarzała, seria IBM developerWorks, która powinna wyjaśniać wszystko, co chcesz o niej wiedzieć, a także kilka przydatnych narzędzi uzupełniających, takich jak pęku kluczy.

rvf
źródło
2

W przypadku osób, które nie dbają o to, aby hasło było widoczne w wierszu polecenia:

sftp userid:password@remoteHostjest jak dołączyć hasło do sftppolecenia połączenia.

AKTUALIZACJA: okazało się to niepoprawne ... patrz komentarze

Ashnazg
źródło
OpenSSH v5.3p1 i v4.3p2, oba w Red Hat Enterprise ...
ashnazg,
1
Okazało się to niepoprawne ... ta metoda wydawała mi się działać, ponieważ PHP i jego rozszerzenie ssh2 były wcześniej używane w moim kodzie do autentycznego samodzielnego uwierzytelnienia ... a polecenie sftp było uruchamiane później. W tym późniejszym składniu wydawało się, że składnia się udała.
ashnazg
1
Nie można rozpoznać nazwy użytkownika hosta: taki host nie jest znany. Rozważa „:” w nazwie użytkownika, co nie ma miejsca w FileZilla CLI
P Satish Patro
1

Podejrzewam, że jest tyle odpowiedzi, ile klientów FTP. Serwer SFTP nie powinien akceptować informacji uwierzytelniających, dopóki nie zostanie ustanowione szyfrowanie, aby użytkownik i hasło były chronione.

Wierzę, że klient FileZilla pozwoli na przekazanie użytkownika i hasła w wierszu poleceń. Zobacz dokumentację tutaj . Biorąc pod uwagę reputację projektu FileZilla, oczekiwałbym, że będzie działać bezpiecznie.

tomjedrz
źródło