L'aide s'attendre à passer un mot de passe ssh
Comment puis-je utiliser s'attendre à envoyer un mot de passe pour une connexion ssh.
dire le mot de passe p@ssword
et la commande ssh a été
ssh [email protected]
Que ferais-je avec s'attendre à une entrée du mot de passe quand il dit
[email protected] s'mot de passe:
?
La bonne action d'utiliser une paire de clés SSH n'est pas une option parce que j'aurais à utiliser ssh (scp) pour mettre la clé sur le serveur, ce qui demandera un mot de passe.
- Mettre la clé sur le serveur ne devrait être fait qu'une fois, alors il ne serait jamais demander un mot de passe à nouveau. Voir ma réponse pour un lien vers un howto.
- Je sais, mais tout est fait en tant que service sur un ordinateur windows. Ce qui signifie que je n'ai aucun moyen de l'ajout de la clé ssh, sauf si elle est effectuée manuellement avant d'avoir, qui n'est pas une option.
- pourquoi n'est-ce pas une option? Généralement installation & configuration de n'importe quelle solution est supposé, alors pourquoi ne pas en faire une contrainte de l'installation/configuration? À moins que ce que vous faites n'est pas au-dessus de conseil, vous devriez envisager de le faire de la bonne façon, plutôt que de concevoir un hack-autour de.
- Parce que le serveur que le service de connexion ne sera pas statique. Comme dans, pour chaque utilisation du service, le serveur doit être spécifiée, la plupart du temps, elle va changer nécessitant une action manuelle qui va à l'encontre du but.
- Puis de créer votre propre contrôle de l'ats et exec ssh à partir de là... il semble toujours vraiment louche pour moi, tho. Je ne peux pas penser à une, à la non-utilisation illicite cas pour ce genre de "automation".
- Il est appelé à la sauvegarde d'un serveur à distance. Et comment suis-je suppose que pour créer mon propre contrôle ats?
- Donc vous ne pouvez pas trouver une raison légitime pour l'automatisation d'une connexion ssh à un serveur?
- Je ne le dis pas, j'ai dit que je ne peux pas penser à un cas d'utilisation pour votre type d'automatisation. Il y a beaucoup de légitime cas, mais la plupart vous permettent de faire la configuration. Comme pour la création d'un contrôle de l'ats, le poser dans une autre question, aussi beaucoup à répondre dans les commentaires 🙂
- Et, j'ai la sauvegarde de serveurs à distance à l'aide de l'automatisation et de la ssh, je serais certainement utiliser l'authentification par clé publique a suggéré que les réponses à cette question.
- Une raison légitime de le faire ce serait le cas si vous êtes de script ssh d'accès aux périphériques de réseau qui ne prennent pas en charge le certificat d'identification - par exemple, des commutateurs Cisco.
- Il y a d'autres cas d'utilisation. Le mien est un environnement de test. Les certificats de changer à chaque fois que le code est réinstallé. C'est une partie de la procédure de test. Et le test doit être automatique... 🙂
- L'automatisation des connexions SSH à l'aide d'un mot de passe d'authentification est une mauvaise idée. Utiliser l'authentification par clé publique et tout devient beaucoup plus facile.
Vous devez vous connecter pour publier un commentaire.
J'ai toujours utilisé la "bonne" solution, mais j'ai utilisé attendre dans d'autres situations.
Ici J'ai trouvé suggestion suivante:
Ne serait-il pas plus facile d'utiliser l'authentification par clé publique et une clé sans passphrase?
Que l'utilisateur sur la machine source le faire pour faire une clé RSA
Maintenant copier ~/.ssh/id_rsa.pub pour la machine cible et l'ajouter au fichier authorized_keys de l'utilisateur cible
Votre plus rapide (sauf si vous voulez devenir un Tcl expert, qui serait... insolite... en 2009) est probablement d'utiliser
autoexpect
. Voici la page de man:http://expect.nist.gov/example/autoexpect.man.html
En bref, le feu jusqu'à
autoexpect
, l'exécution de votre session ssh, finissez ce que vous devez faire, arrêter autoexpecting puis battre votre clavier le désordre jusqu'à ce qu'il fonctionne 🙂 je suis en supposant que vous n'avez pas besoin de rien de plus qu'un rapide hack pour obtenir vos clés triés et ensuite, eh bien, il sonne comme vous le savez le score déjà avec qui.Et il n'y a cette question qui contient déjà un exemple proche de ce que vous cherchez.
Cygwin a autoexpect tout simplement pas dans la corbeille de package. exécuter setup.exe et de recherche pour l'attendre, et cochez la case source. vous verrez l'arbre résultant dans /usr/src /et là il y a un attendre/attendre/exemples de répertoire. là vit une copie de la autoexpect script.
Solution clé ne fonctionnera pas... parce que les clés doivent être lisibles seulement par la personne qui exécute la commande ssh. Sur xp, vous ne pouvez pas créer la structure de la clé avec les autorisations correctes. Donc ssh ne les lisent pas. Cela peut avoir changé, mais le dernier que j'ai vérifié, pas encore pas de travail.
Je suis assez sûr il n'est pas possible de faire ce que vous essayez de faire. La plupart des *nix applications qui demandent un mot de passe en lecture à partir de l'ATS directement, pas stdin, de sorte que vous ne pouvez pas pipe le mot de passe dans. Vous pouvez, comme d'autres l'ont mentionné, configurer SSH pour ne pas demander un mot de passe, comme expliqué ici.
Après j'ai été downvoted pour aucune raison apparente, je suis allé et a fait des recherches un peu plus sur le
expect
de commande et de découvrir que il a unsend_tty
de commande qui envoie vers /dev/tty au lieu de stdin, qui peut réellement faire ce que vous voulez... j'ai déjà pas au courant de cette fonctionnalité. Je recommande toujours de mettre la clé sur le serveur, cependant.