Se você deseja enviar a PS1variável e ela não contém uma '(aspas simples), tente:
ssh targethost -t "PS1='$PS1'; exec bash"
O local .bashrcpode sobrescrever PS1(obrigado a Dennis Williamson por apontar isso).
Existem maneiras de transmitir variáveis de ambiente pelo ssh , mas elas geralmente são desativadas na configuração do servidor. Se a PermitUserEnvironmentdiretiva estiver ativada na configuração do servidor e cada usuário tiver seu próprio par de chaves (sim, você pode não ter tanta sorte), poderá adicionar environment="PS1=…"à linha ~/.ssh/authorized_keyscorrespondente à sua chave.
Se você deseja manter sua própria configuração em uma conta de usuário compartilhada, é possível criar seu próprio diretório do arquivo de configuração e definir a HOMEvariável de ambiente para apontar para esse diretório.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Crie links simbólicos no mrstatic.homediretório apontando para a entrada correspondente no diretório pai quando desejar compartilhar um arquivo com os outros usuários.
Em seguida, faça login com
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Se você deseja modificar o controle remoto .profile(ou outro arquivo de inicialização), provavelmente pode automatizar suas configurações. Muitos sites permitem LC_*a passagem de variáveis de ambiente (normalmente são usadas para configurações de localidade). Se essas duas condições forem atendidas, você poderá definir uma variável que não seja realmente usada para localidades, digamos LC_USER, no lado do cliente e testá-la no servidor .profile.
(É claro que contas compartilhadas são uma péssima idéia, mas sei que você pode não estar em condições de mudar essa situação.)
"PS1='$PS1' bash -i"(e por que nãoexectambém)?