Se você deseja enviar a PS1
variável e ela não contém uma '
(aspas simples), tente:
ssh targethost -t "PS1='$PS1'; exec bash"
O local .bashrc
pode 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 PermitUserEnvironment
diretiva 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_keys
correspondente à 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 HOME
variá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.home
diretó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ãoexec
também)?