Ma question est similaire à celle-ci , mais je cherche quelque chose de légèrement différent. J'ai un ordinateur portable que j'utilise pour accéder aux machines Linux sur un réseau dans deux scénarios différents:
J'ai une connexion filaire directe au réseau.
J'ai une connexion indirecte au réseau. Il y a une machine passerelle sur le réseau exposée à Internet, que je peux utiliser pour établir des tunnels SSH vers les hôtes du réseau. Il s'agit évidemment d'une connexion beaucoup plus lente et à latence plus élevée.
Mon répertoire personnel est accessible sur le réseau depuis toutes les machines, ils partagent donc une copie de mon .bashrc
. Je voudrais ajouter des fonctionnalités pour .bashrc
détecter lequel des deux scénarios je suis et agir en conséquence (techniquement, il y aurait trois scénarios, où le troisième est que je me connecte à ma machine locale, mais cela devrait être facilement géré ). J'aimerais faire des choses comme:
alias ssh ssh -X
lorsque je suis sur le réseau local, mais je ne veux pas utiliser le transfert X sur Internet.export EDITOR=gvim
quand je suis sur le réseau local, maisexport EDITOR=vim
quand je suis distant.
Etc. Sur la base de la réponse précédente, il semble que je devrais être capable d'accomplir quelque chose comme ça en vérifiant le contenu de SSH_CLIENT
(s'il existe) et en voyant si l'adresse IP du client correspond à l'un des adaptateurs réseau sur ma machine locale. J'ai pensé que je verrais s'il y a une façon plus élégante ou plus robuste d'accomplir cela.