Para detectar uma sessão SSH, use $SSH_CLIENT
.
Para distinguir entre sessões locais e remotas, existem duas abordagens possíveis: do lado do cliente ou do lado do servidor. No lado do servidor, compare $SSH_CLIENT
com o endereço IP local ou a tabela de roteamento; Isso geralmente informa se a conexão é da LAN. No lado do cliente, talvez você queira colocar ForwardX11
configurações em ~/.ssh/config
: defina como yes
para hosts da LAN e no
para hosts WAN. Isso implica ter um% diferente ~/.ssh/config
em sites diferentes; é o que eu faço, e eu gero o meu com um script de shell.
Se o encaminhamento do X11 estiver ativado para conexões LAN e desativado para conexões WAN, você poderá configurar seu editor favorito para considerar $DISPLAY
.
As configurações do lado do servidor normalmente estariam no seu .profile
(ou .bash_profile
se o seu login shell for bash e você usar .bash_profile
, ou .zprofile
se o seu shell de login for zsh).
case ${SSH_CLIENT%% *}//$(/sbin/ifconfig |
sed -n 's/^.* addr:\([0-9][0-9.]*\) .*//p' |
tr '\n' /)/ in
"") :;;# local session
10.42.*/10.42.*) :;; # LAN session
1.2.3.*/1.2.3.*) :;; # LAN session
*) unset DISPLAY;; # WAN session
esac
export EDITOR=vim
if [ -n "$DISPLAY" ] && type gvim >/dev/null 2>/dev/null; then
EDITOR=gvim
fi
export VISUAL="$EDITOR"