Un ~/.ssh/config fichier utiliser des variables?
Je suis en train d'écrire un fichier de configuration SSH et souhaitez effectuer un peu de logique. Par exemple:
Host myhost1
ProxyCommand ssh -A {choose randomly between [bastion_host1] and [bastion_host2]} -W %h:%p
Est-il possible de parvenir à la ci-dessus en utilisant (bash?) les variables? Merci!
OriginalL'auteur Bob Risky | 2015-11-02
Vous devez vous connecter pour publier un commentaire.
Votre proxycommand peut être un script shell.
Puis dans
~/bin/selecthost
:A pas été testé. Votre kilométrage peut varier. Peut contenir des noix.
Mise à jour:
Par les commentaires, j'ai testé le suivant, et il fonctionne aussi bien:
Bien sûr, cette méthode ne vous permet pas de spécifier un port personnalisé par l'hôte, ce qui peut ajouter à la logique d'un autre script shell si nécessaire pour de multiples hôtes de la même
host
entrée dans votre config ssh.ssh -A $onehost ${2:+-W $1:$2}
comme une copie directe de l'existant Proxycommand?Dans ce script, le
$onehost
variable est définie par la sélection d'un ensemble aléatoire de l'élément à partir d'un tableau bash. Votre ProxyCommand est exécutée par le shell, tant et aussi longtemps que votre shell est bash, je ne vois pas pourquoi tu ne peux pas inclure l'intégralité des fonctionnalités de ce script sur une seule ligne, bien que je n'ai pas essayé. J'ai répondu de cette façon parce que je ne sais pas qui vous êtes bash votre shell par défaut. (Sur mon système, j'utilise bash pour la programmation, mais tcsh est mon shell par défaut.)Ajout d'une option qui intègre le script sur un seul ProxyCommand ligne. 🙂
"Peut contenir des noix" m'a Donné un éclat de rire!
OriginalL'auteur ghoti
Pas;
.ssh/config
n'est pas traitée par un programme extérieur. Vous aurez besoin d'une fonction shell le long des lignes deOriginalL'auteur chepner
Dans
~/.ssh/config
vous ne pouvez pas avoir beaucoup de logique, et pas de Bash. Le manuel de ce fichier est dansman ssh_config
, et il ne fait aucune mention d'une telle fonction.Ce que vous pouvez faire est de créer un script qui va avoir de la logique dont vous avez besoin, et vous faire de configuration de ssh appel de ce script.
Quelque chose le long des lignes de:
Et écrire un script Bash
/root/bin/ssh-randomly.sh
de prendre deux paramètres de nom d'hôte, sélectionnez-en un au hasard, et un réelssh
de commande avec les paramètres appropriés.OriginalL'auteur janos