Respuestas:
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 .
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
brew search sshpass
- "No agregaremos sshpass porque hace que sea demasiado fácil para los usuarios novatos de SSH arruinar la seguridad de SSH".
No haga eso: configure la autenticación de clave pública SSH para el inicio de sesión automático.
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
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.
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@remoteHost
es cómo incluir la contraseña en el sftp
comando de conexión.
ACTUALIZACIÓN: esto resultó ser incorrecto ... ver comentarios
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.