Si solo desea enviar la PS1
variable, y no contiene una '
(comilla simple), intente:
ssh targethost -t "PS1='$PS1'; exec bash"
Sin embargo, el local .bashrc
puede 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 PermitUserEnvironment
directiva 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_keys
correspondiente 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 HOME
variable 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.home
directorio 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)?