¿Cómo puedes hacer un one liner con sftp para iniciar sesión con la contraseña en la misma línea?


16

¿Existe una opción para poner la contraseña en la línea también con sftp?

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

Me gusta esto

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

Respuestas:


13

Generalmente, incluir una contraseña en una línea de comando se considera un riesgo de seguridad porque se mostrará a cualquier otra persona que pueda ejecutar ps / top, y puede guardarse en el historial de su shell.

Sería una idea mucho mejor configurar la autenticación basada en claves si puede.

Además, no creo que sea posible con sftp. Está destinado a ser utilizado para transferencias seguras. Si realmente tuvo que hacer algo como esto y no tiene otra opción, entonces probablemente deba considerar la automatización con la expectativa .


Punto interesante!
Daniel

Sería una idea mucho mejor configurar la autenticación basada en claves si puede. Eso tiene sentido.
Net Runner

Esta url de espera está rota
André Perazzi

44
No puedo entender por qué la gente vota una respuesta que no proporciona una solución.
itoctopus

33

Como otros han mencionado, una contraseña de línea de comandos debería ser el último recurso.

Sin embargo, si nada más es posible; uno puede ir a pasar ssh

sshpass -p <password> sftp user@host

2
Esto debería ser votado masivamente. Es realmente útil tener sshpass. Algunos proveedores no le permiten crear una carpeta .ssh y scp tampoco está permitido.
NetSquirrel

2
Es bueno que algunas herramientas te respalden: brew search sshpass- "No agregaremos sshpass porque hace que sea demasiado fácil para los usuarios novatos de SSH arruinar la seguridad de SSH".
Oliver

44
Esta debería ser la solución aceptada. El OP preguntó cómo hacer esto específicamente, no por consejos de seguridad (aunque bien intencionados y correctos).
ebr

6

No haga eso: configure la autenticación de clave pública SSH para el inicio de sesión automático.


¿Puede sftp hacer esto igual que scp?
Daniel

1
@Daniel, tanto sftp como scp están construidos en SSH que permite la autenticación basada en claves.
Zoredache el

5

Solo usa perl, ruby ​​o python para escribir lo que estás tratando de hacer. En el caso de ruby ​​es solo (tomado de los documentos de la 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

Para más información http://net-ssh.rubyforge.org/sftp/v2/api/index.html


Paramiko es Python puro (sin libs adicionales) y funciona muy bien
qwertzguy

3

Como han dicho las otras respuestas, use la autenticación de clave pública. Hay una gran serie de IBM developerWorks , aunque un poco anticuada, que debería explicar todo lo que desea saber al respecto, así como algunas herramientas complementarias útiles como el llavero.


2

Para los buscadores que no les importa que la contraseña se pueda ver en el comando de línea de comandos:

sftp userid:password@remoteHostes cómo incluir la contraseña en el sftpcomando de conexión.

ACTUALIZACIÓN: esto resultó ser incorrecto ... ver comentarios


OpenSSH v5.3p1 y v4.3p2, ambos en Red Hat Enterprise ...
ashnazg

1
Esto resultó ser incorrecto ... este método parecía funcionar para mí porque PHP y su extensión ssh2 se usaban anteriormente en mi código para hacer una autenticación independiente real ... y el comando sftp se ejecutaba más tarde. Fue en esta última pieza donde la sintaxis pareció tener éxito.
ashnazg

1
No se pudo resolver el usuario del nombre de host: no se conoce dicho host. Está considerando ":" en el nombre de usuario, que no es el caso en FileZilla CLI
P Satish Patro

1

Sospecho que hay tantas respuestas como clientes FTP. Un servidor SFTP no debe aceptar información de autenticación hasta que se establezca el cifrado, de modo que el usuario y la contraseña estén protegidos.

Creo que el cliente FileZilla permitirá el paso de la línea de comandos del usuario y la contraseña ... consulte la documentación aquí . Dada la reputación del proyecto FileZilla, esperaría que funcione de forma segura.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.