Réponses:
En général, l'inclusion d'un mot de passe dans une ligne de commande est considérée comme un risque pour la sécurité car il apparaîtra à toute autre personne pouvant exécuter ps / top, et il peut être enregistré dans l'historique de votre shell.
Ce serait une bien meilleure idée de configurer l'authentification par clé si vous le pouvez.
De plus, je ne pense pas que cela sera possible avec sftp. Il est destiné à être utilisé pour des transferts sécurisés. Si vous avez vraiment dû faire quelque chose comme ça et que vous n'avez pas d'autre choix, vous devez probablement envisager d'automatiser avec attente .
Comme d'autres l'ont mentionné, un mot de passe de ligne de commande devrait être le dernier recours.
Cependant, si rien d'autre n'est possible; on peut aller pour ssh pass
sshpass -p <password> sftp user@host
brew search sshpass
- "Nous n'ajouterons pas sshpass car il est trop facile pour les utilisateurs novices de SSH de ruiner la sécurité de SSH."
Utilisez simplement perl, ruby ou python pour écrire ce que vous essayez de faire. En cas de rubis, c'est juste (extrait des documents de l'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
Pour plus d'informations http://net-ssh.rubyforge.org/sftp/v2/api/index.html
Comme les autres réponses l'ont indiqué, utilisez l'authentification par clé publique. Il existe une série IBM developerWorks géniale, quoique un peu datée, qui devrait expliquer tout ce que vous voulez en savoir, ainsi que quelques outils supplémentaires utiles tels que le trousseau.
Pour les chercheurs qui ne se soucient pas que le mot de passe soit visible dans la commande de ligne de commande:
sftp userid:password@remoteHost
est de savoir comment inclure le mot de passe dans la sftp
commande connect.
MISE À JOUR: cela s'est avéré être incorrect ... voir les commentaires
Je soupçonne qu'il y a autant de réponses qu'il y a de clients FTP. Un serveur SFTP ne doit pas accepter les informations d'authentification tant que le cryptage n'est pas établi, afin que l'utilisateur et le mot de passe soient protégés.
Je crois que le client FileZilla permettra le passage en ligne de commande de l'utilisateur et du mot de passe .. voir la documentation ici . Compte tenu de la réputation du projet FileZilla, je m'attendrais à ce qu'il fonctionne en toute sécurité.