en utilisant .netrc avec sftp
J'ai quelques scripts existants dans lequel suis en utilisant le protocole ftp + .netrc.
Je veux passer à sftp maintenant, mais il semble qu'il ne prend pas en charge les macros /.netrc.
Est-il une autre alternative?
S'il vous plaît aider.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Tout simplement, vous ne pouvez pas utiliser
.netrc
avecsftp
scp
oussh
. Ces produits font partie de la OpenSSH standard, qui a le mot-clé "sécurisé" dans le nom. Ce n'est pas une pratique sécurisée d'automatiser les connexions de la façon.netrc
n', et la norme interdit ce genre d'automatisation (stockage des mots de passe). Il y a certainement une alternative, trois en fait.Autorisation
Pour l'une des deux premières solutions de rechange, vous voulez les clés d'installation et d'échange. Sur l'ordinateur que vous connectez à partir d'exécuter
ssh-keygen
pour vos fins, il sera beaucoup plus simple si vous n'avez pas de donner la clé d'un mot de passe, même si c'est risqué. Vous avez maintenant deux fichiers dans.ssh/
unid_rsa
et unid_rsa.pub
. De ces laid_rsa
doit être gardé secret ou sécurisé (d'où la phrase de passe). Le fichier pub est en fait une ligne de texte. Cette ligne peut être ajouté à la~/.ssh/authorized_keys
fichier sur l'hôte de réception. Vous pouvez ajouter la clé du fichier manuellement; mais il y a aussissh-copy-id
commande de raccourci qui ne fonctionne tout simplement que, prenant également en charge les autorisations de fichier. Ayant autorisé une clé, vous devriez être en mesure de se connecter depuis la machine avec la clé privée de la machine qui l'a autorisé à clé publique, lorsque vous vous connectez en tant que l'utilisateur approprié. Tester avecssh -v
. Si vous avez entré un mot de passe, vous serez invité pour lui; si vous n'avez pas à vous maintenant d'automatisation de prêt. Vous pouvez utiliser unssh-agent
de garder une clé privée active entre les sessions, alors que seule la saisie du mot de passe une fois. Si vous réalisez plusieursssh
du houblon, de la possibilité de transmettre des agents permettra à la clé privée à partir de l'original provenant de la zone dessh-agent
être communiquées par le biais de chaque tronçon. Personnellement, je trouve cela trop compliqué, et donc conseillons de ne pas utiliser un mot de passe.Maintenant que vous pouvez faire
ssh
sftp
etscp
connexions sans entrer de mot de passe ou mot de passe, vous êtes prêt à automatiser le reste.La variante 1,
est la solution privilégiée étiez-vous convertir vos
.netrc
macro à un script shell ou autre script appelant quelquesscp
commandes. Ceci est similaire à l'automatisation de toutes vos connexions ftp aveccurl
ouwget
. E. G.:La variante 2,
à l'aide de
sftp
comme vous l'avez mentionné, vous pouvez créer un script avec laexpects
de commande, avec un fichier de commandes à l'aide de la-b
option, ou par des conduites commandes danssftp
. C'est un peu plus semblable à un.netrc
macro, mais n'a aucun avantage par rapport à la variante 1. Je vais vous montrer un exemple de ce dernier:La variante 3,
utiliser un
sftp
programme qui rompt le SSH standard en vous permettant de stocker des paramètres de connexion comme le mot de passe. Par exemple à l'aide de cyberduck et AppleScript, ou FileZilla et une file d'attente.Note en outre:
Il y a un
~/.ssh/config
fichier vous pouvez utiliser de donner les noms d'hôtes des noms plus courts, de définir la retransmission de paramètres, les répertoires par défaut, défaut, les noms d'utilisateur et des identités spécifiques pour chaque hôte. J'aime aussi le-l
option descp
qui limite mon taux de transfert de quelque chose de plus raisonnable.P. S. Vous pourriez penser qu'il y a un outil pour la conversion de
.netrc
macros (variante 1 de style) des scripts shell. Mais je n'ai rien trouvé. C'est qu'une minuscule niche occasion d'affaires?Si vous pouvez utiliser l'authentification sans mot de passe sur votre machine (ce qui peut être interdit par votre administrateur de système, mais n'est généralement pas), alors vous pouvez facilement utiliser scp dans un script shell, plutôt que de macros .netrc. Mais si vous devez taper un mot de passe pour vous connecter à la machine distante, alors je voudrais utiliser l'ici "script" (le bit avec EOF) à faire de la magie. Vous pouvez utiliser un script shell pour cuire le script ftp si il change de temps à autre.
Essayez de regarder dans scp, que vous pouvez utiliser sans mot de passe de connexion (ssh keys) pour ce faire.
Vous pouvez être en mesure d'utiliser les mêmes techniques avec SFTP, je ne suis pas sûr.