O parâmetro que eu estava procurando é: -t que forçaria o cliente ssh a alocar um terminal, então é assim:
ssh -t user@host "bash -o vi"
Isso me permitirá ativar automaticamente o modo vi ao conectar, mas executar mais comandos é mais complicado, pois se eu adicionasse mais comandos depois eles seriam executados após sair do bash e imediatamente sair de tudo, então todos os comandos devem ser executados antes dele .