Come si può fare una linea con sftp per accedere con la password sulla stessa linea?


16

C'è un'opzione per mettere la password anche in linea con sftp?

linux~ $ sftp USERNAME@FTP.WEBSITE.COM:/DIRECTORY_TO_GO_TO/ 

Come questo

linux~ $ sftp USERNAME@FTP.WEBSITE.COM:/DIRECTORY_TO_GO_TO/ -p PASSWORD? 

Risposte:


13

Generalmente includere una password in una riga di comando è considerato un rischio per la sicurezza perché verrà mostrato a chiunque sia in grado di eseguire ps / top e potrebbe essere salvato nella cronologia della shell.

Sarebbe molto meglio impostare l'autenticazione basata su chiave, se possibile.

Inoltre, non credo che sarà possibile con sftp. È pensato per essere utilizzato per trasferimenti sicuri. Se davvero si doveva fare qualcosa di simile e non avete altra scelta allora probabilmente bisogno di essere alla ricerca di automatizzare con aspettarsi .


Punto interessante!
Daniel,

Sarebbe molto meglio impostare l'autenticazione basata su chiave, se possibile. Questo ha senso.
Net Runner

Questo URL si interrompe
André Perazzi,

4
Non riesco a capire perché le persone votino una risposta che non fornisce una soluzione.
itoctopus

33

Come altri hanno già detto, una password della riga di comando dovrebbe essere l'ultima risorsa.

Tuttavia, se nient'altro è possibile; si può andare per ssh pass

sshpass -p <password> sftp user@host

2
Questo dovrebbe essere massicciamente votato. È davvero utile avere sshpass. Alcuni provider non ti consentono di creare una cartella .ssh e scp è vietato.
NetSquirrel il

2
bene che alcuni strumenti hanno le spalle: brew search sshpass- "Non aggiungeremo sshpass perché rende troppo facile per gli utenti principianti SSH rovinare la sicurezza di SSH."
Oliver,

4
Questa dovrebbe essere la soluzione accettata. L'OP ha chiesto come fare questa cosa specifica, non per consigli sulla sicurezza (sebbene ben intenzionati e corretti).
ebr

6

Non farlo: imposta l'autenticazione con chiave pubblica SSH per l'accesso automatico.


Sftp può fare lo stesso è scp?
Daniel,

1
@Daniel, sia sftp che scp sono basati su SSH che consente l'autenticazione basata su chiave.
Zoredache,

5

Usa solo perl, ruby ​​o python per scrivere ciò che stai cercando di fare. In caso di ruby ​​è solo (preso dai documenti 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

Per maggiori informazioni http://net-ssh.rubyforge.org/sftp/v2/api/index.html


paramiko è puro pitone (senza librerie extra) e funziona davvero bene
qwertzguy,

3

Come hanno affermato le altre risposte, utilizzare l'autenticazione con chiave pubblica. Esiste una serie IBM DeveloperWorks eccezionale, anche se un po 'datata, che dovrebbe spiegare tutto ciò che vuoi sapere al riguardo, nonché alcuni utili strumenti supplementari come il portachiavi.


2

Per i ricercatori che non si preoccupano che la password sia visibile nel comando da riga di comando:

sftp userid:password@remoteHostè come includere la password nel sftpcomando connect.

AGGIORNAMENTO: questo si è rivelato errato ... vedi commenti


OpenSSH v5.3p1 e v4.3p2, entrambi su Red Hat Enterprise ...
ashnazg

1
Questo si è rivelato errato ... questo metodo sembrava funzionare per me perché PHP e la sua estensione ssh2 erano state usate in precedenza nel mio codice per eseguire l'autenticazione autonoma effettiva ... e il comando sftp veniva eseguito in seguito. Fu questo pezzo successivo in cui la sintassi sembrò avere successo.
ashnazg,

1
Impossibile risolvere il nome host user: nessun host simile è noto. Sta considerando ":" nel nome utente che non è il caso in FileZilla CLI
P Satish Patro

1

Sospetto che ci siano tante risposte quanti sono i client FTP. Un server SFTP non dovrebbe accettare le informazioni di autenticazione fino a quando non viene stabilita la crittografia, in modo che l'utente e la password siano protetti.

Credo che la FileZilla cliente consentirà a riga di comando che passa del utente e la password .. vedere la documentazione qui . Data la reputazione del progetto FileZilla, mi aspetto che funzioni in modo sicuro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.