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


17

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

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

Comme ça

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

Réponses:


13

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 .


Point intéressant!
Daniel

Ce serait une bien meilleure idée de configurer l'authentification par clé si vous le pouvez. Ce est logique.
Net Runner

Cette URL attend est cassée
André Perazzi

4
Je ne comprends pas pourquoi les gens votent pour une réponse qui ne fournit pas de solution.
itoctopus le

34

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

2
Cela devrait être massivement voté. Il est vraiment utile d'avoir sshpass. Certains fournisseurs ne vous permettent pas de créer un dossier .ssh et scp est également interdit.
NetSquirrel

2
bon que certains outils vous soutiennent: 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."
oliv

4
Cela devrait être la solution acceptée. Le PO a demandé comment faire cette chose spécifique - pas pour des conseils de sécurité (bien que bien intentionnés et corrects).
EBR

6

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


Sftp peut-il faire la même chose que scp?
Daniel

1
@Daniel, sftp et scp sont construits sur SSH, ce qui permet une authentification basée sur les clés.
Zoredache

5

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


paramiko est en python pur (pas de bibliothèques supplémentaires) et fonctionne très bien
qwertzguy

3

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.


2

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@remoteHostest de savoir comment inclure le mot de passe dans la sftpcommande connect.

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


OpenSSH v5.3p1 et v4.3p2, tous deux sur Red Hat Enterprise ...
ashnazg

1
Cela s'est avéré incorrect ... cette méthode a semblé fonctionner pour moi car PHP et son extension ssh2 étaient utilisés plus tôt dans mon code pour effectuer une authentification autonome réelle ... et la commande sftp était exécutée plus tard. C'est cette dernière pièce où la syntaxe a semblé réussir.
ashnazg

1
Impossible de résoudre l'utilisateur du nom d'hôte: aucun hôte de ce type n'est connu. Il envisage ":" dans le nom d'utilisateur, ce qui n'est pas le cas dans FileZilla CLI
P Satish Patro

1

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.