Je me connecte à un certain nombre de machines en permanence, à partir de différents emplacements physiques (et donc de différentes machines physiques). La plupart de cela se fait via ssh, parfois une machine passerelle ou deux est requise (que j'invoque via ProxyCommand
in ~/.ssh/config
). Je voudrais savoir s'il existe une méthode pour identifier l'adresse IP ou le nom d'hôte de la machine qui appelle la connexion initiale (c'est-à-dire la machine sur laquelle je travaille) à l'extrémité distante?
- Je ne veux pas envoyer de variables d'environnement car certaines machines que je n'ai pas de racine à définir
PermitUserEnvironment
. - La
$SSH_CLIENT
variable d'environnement est utile pour les connexions directes, mais répertorie uniquement la passerelle la plus récente.
Mon idée actuelle pour une solution est de saisir $SSH_CLIENT
, ssh, de trouver la $SSH_CLIENT
valeur de cette machine et de répéter jusqu'à ce qu'elle n'existe pas; puis saisissez le nom d'hôte et retirez-le d'une manière ou d'une autre.
Cela semble être un peu un travail de piratage cependant; Quelqu'un at-il une meilleure méthode?
Je travaille principalement dans un shell bash, mais je suis également heureux de toute suggestion qui ne l'utilise pas trop.