Cargue un archivo en cada máquina remota, digamos ~/.my_custom_bashrc
, con su bash
personalizado configuración, (en este caso PS1=...
) luego inicie ssh
con:
ssh [email protected] -t "bash --rcfile ~/.my_custom_bashrc -i"
Puedes usar fácilmente un bash
funcionar como contenedor para facilitar la lectura.
Si solo desea enviar el PS1
variable, y no contiene un '
(comilla simple), intente:
ssh targethost -t "PS1='$PS1'; exec bash"
El .bashrc
local bien puede sobrescribir PS1
aunque (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 el 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 en ~/.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 configurar el HOME
variable de entorno para apuntar a ese directorio.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Crear enlaces simbólicos en el mrstatic.home
directorio que apunta a la entrada correspondiente en el directorio principal cuando desea compartir un archivo con otros usuarios.
Luego, inicia 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 a través de (normalmente se utilizan para la configuración local). Si se cumplen estas dos condiciones, puede establecer una variable que no se use realmente para las configuraciones regionales, digamos LC_USER
, en el lado del cliente, y pruébalo 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).
ssh -t [email protected] "remote='$PS1' bash -i"
Luego, en el aviso:
PS1=$remote