GNU/Linux >> Tutoriales Linux >  >> Linux

Empujando mi mensaje de PS1 sobre ssh

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

Linux
  1. ¿Resaltar separadores de ruta en Ps1?

  2. ¿Cómo producir un indicador de Ps1 en Bash o Ksh93 similar a Tcsh?

  3. ¿Es `~#` una expansión tilde de Bash?

  4. ¿Cómo aceptan algunas aplicaciones el clic del mouse en Bash sobre Ssh?

  5. Cómo diferenciar directorios sobre ssh

Cómo personalizar Bash Prompt en Linux

Cómo transferir archivos con Rsync a través de SSH

¿Oring con True en un comando sobre Ssh?

Pantalla de aviso de Bash Hh:mm:ss?

Bash Shell PS1:10 ejemplos para hacer que su Linux sea tan rápido como Angelina Jolie

claves ssh ssh-agent bash y ssh-add