Si solo desea enviar la PS1variable, y no contiene una '(comilla simple), intente:
ssh targethost -t "PS1='$PS1'; exec bash"
Sin embargo, el local .bashrcpuede sobrescribir PS1(gracias a Dennis Williamson por señalar esto).
Hay formas de transmitir variables de entorno a través de ssh , pero generalmente están deshabilitadas en la configuración del servidor. Si la PermitUserEnvironmentdirectiva está habilitada en la configuración del servidor y cada usuario tiene su propio par de claves (sí, es posible que no tenga tanta suerte), puede agregar environment="PS1=…"a la línea ~/.ssh/authorized_keyscorrespondiente a su clave.
Si desea mantener su propia configuración en una cuenta de usuario compartida, puede crear su propio directorio de archivos de configuración y establecer la HOMEvariable de entorno para que apunte a ese directorio.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Cree enlaces simbólicos en el mrstatic.homedirectorio que apunten a la entrada correspondiente en el directorio principal cuando desee compartir un archivo con los otros usuarios.
Luego, inicie sesión con
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Si está dispuesto a modificar el control remoto .profile(u otro archivo de inicialización), probablemente pueda automatizar su configuración. Muchos sitios permiten LC_*variables de entorno (normalmente se usan para la configuración regional). Si se cumplen ambas condiciones, puede establecer una variable que no se use realmente para configuraciones regionales, por ejemplo LC_USER, en el lado del cliente, y probarla en el servidor .profile.
(Por supuesto, las cuentas compartidas son una mala idea, pero me doy cuenta de que es posible que no esté en condiciones de cambiar esa situación).
"PS1='$PS1' bash -i"(y por qué noexec, también)?