Je voudrais définir une variable à la sortie d'une commande ssh en zsh. La commande ssh elle-même se connecte à un premier serveur, puis à nouveau ssh depuis ce serveur vers un deuxième serveur sur lequel je veux exécuter ma commande.
Voici la commande (fonctionne bien lorsque vous tapez dans le shell):
ssh -t host1 "ssh -t host2 "uname -a""
J'ai une configuration de clé ssh pour host1, donc la connexion ne demande pas de mot de passe. Je n'en ai pas pour la connexion suivante entre host1 et host2, je dois donc taper le mot de passe.
Maintenant, je voudrais enregistrer le contenu de uname
dans une variable, à utiliser dans mon script zsh. J'ai essayé naïvement:
a=$(ssh -t host1 "ssh -t host2 "uname -a"")
mais il semble rester bloqué pour toujours, en quelque sorte l'invite de connexion interactive avec mot de passe ne me sera pas redirigée. Si j'essaye un echo $a
ensuite j'ai eu un user@host2's password:'
pour le confirmer
Je suppose que quelque chose a mal tourné dans la façon dont zsh traite les guillemets et les guillemets, mais je ne pouvais pas trouver quoi. J'ai essayé de nombreuses variantes, sans succès.