Moje pytanie jest podobne do tego , ale szukam czegoś nieco innego. Mam komputer przenośny, którego używam do uzyskiwania dostępu do komputerów z systemem Linux w sieci w dwóch różnych scenariuszach:
Mam bezpośrednie, przewodowe połączenie z siecią.
Mam pośrednie połączenie z siecią. W sieci jest maszyna bramowa wystawiona na działanie Internetu, której mogę użyć do ustanowienia tuneli SSH do hostów w sieci. Jest to oczywiście znacznie wolniejsze połączenie o większym opóźnieniu.
Mój katalog domowy jest dostępny w sieci na wszystkich komputerach, więc udostępniają moją kopię .bashrc
. Chciałbym dodać funkcjonalność, aby .bashrc
wykrywać, w którym z dwóch scenariuszy jestem, i działać odpowiednio (technicznie byłyby trzy scenariusze, w których trzeci polega na tym, że loguję się na mojej lokalnej maszynie, ale to powinno być łatwe do rozwiązania ). Chciałbym robić takie rzeczy jak:
alias ssh ssh -X
kiedy jestem w sieci lokalnej, ale nie chcę korzystać z przesyłania X w Internecie.export EDITOR=gvim
kiedy jestem w sieci lokalnej, aleexport EDITOR=vim
kiedy jestem zdalny.
I tak dalej. Na podstawie poprzedniej odpowiedzi wygląda na to, że powinienem być w stanie osiągnąć coś takiego, sprawdzając zawartość SSH_CLIENT
(jeśli istnieje) i sprawdzając, czy adres IP klienta pasuje do jednej z kart sieciowych na moim komputerze lokalnym. Myślałem, że zobaczę, czy istnieje lepszy lub bardziej solidny sposób na osiągnięcie tego.