Is there a way to determine what the remote machine's platform is and then process .bash_profile accordingly?
Não simplesmente não. Você pode, se as condições da rede permitirem, usar o nmap para tentar identificar o sistema operacional do IP de origem em $ SSH_CLIENT, mas isso não é necessariamente confiável. / p>
Se seus sistemas de origem estivessem em segmentos de rede diferentes, você poderia usar isso como um indicador aproximado para distinguir os sistemas de origem, mas esse não é o caso para você aqui.
Como você só quer que a conexão do Mac faça algo diferente, uma opção seria envolver ou aliasar a conexão ssh do Mac ao destino, de modo que ele passe uma variável de ambiente personalizada para o bash verificar:
alias ssh2it='ssh -t targethost "_origin=mac bash -il"'
Em seguida, configure o ~ / .bashr do seu targethost ao longo destas linhas:
case $_origin in
(mac)
echo mac-specific settings here
;;
(other-custom-system)
echo other settings here
;;
(*)
echo any default settings here
;;
esac
Você teria que estender essa ideia para o outro tipo de sistema que deseja se comportar de maneira diferente, e isso significa envolver cada login interativo para definir a variável.
Se você puder controlar ainda mais o sshd_config do sistema de destino, você pode editar o arquivo / etc / ssh / sshd_config para adicionar:
AcceptEnv _origin
(e depois reciclar o sshd).
Em seguida, no sistema de origem, edite ~ / .ssh / config para enviar essa variável:
Host targetsystem
SendEnv _origin
e antes de se conectar ao destino, execute:
export _origin=mac
Depois de efetuar login no sistema de destino, $ _origin será definido para esse valor.