web-dev-qa-db-fra.com

Comment pouvez-vous faire un liner avec sftp pour vous connecter avec le mot de passe sur la même ligne?

Existe-t-il une option pour mettre le mot de passe en ligne également avec sftp?

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

Comme ça

linux~ $ sftp [email protected]:/DIRECTORY_TO_GO_TO/ -p PASSWORD? 
20
Daniel

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 qui peut 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 attendez .

14
Zoredache

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
36
Yogesh Nachnani

Ne faites pas cela - configurez l'authentification par clé publique SSH pour la connexion automatique.

6
MikeyB

Utilisez simplement Perl, Ruby ou python pour écrire ce que vous essayez de faire. En cas de Ruby 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

5
monomyth

Comme les autres réponses l'ont indiqué, utilisez l'authentification par clé publique. Il y a un grand, bien qu'un peu daté, IBM developerWorks series qui devrait expliquer tout ce que vous voulez savoir à ce sujet, ainsi que quelques outils supplémentaires utiles tels que le trousseau.

3
rvf

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é.

1
tomjedrz

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 la façon d'inclure le mot de passe dans la commande sftp connect.

MISE À JOUR: cela s'est avéré être incorrect ... voir les commentaires

1
ashnazg