5 votos

Cambiar el título de una conexión ssh sin modificar las máquinas remotas

¿Es posible establecer el título de una conexión ssh simplemente cambiando algo en mi máquina local?

Quiero decir que quiero ubuntu@ip-10-50-10-152 en la siguiente imagen para cambiarla por un nombre que me guste.

Y no quiero cambiar ninguna configuración en la máquina remota.

enter image description here

La dirección IP es difícil de recordar, ¿cómo puedo cambiarla por un nombre más legible?

Quiero asignar cada dirección IP a un nombre diferente.

Las máquinas remotas en mi caso son un montón de Amazon EC2 instancias. Algunas de ellas sólo existen durante unos días. Y las nuevas ec2 se crean con frecuencia.

Yo uso iTerm2 como mi terminal de MacOS. Y no he podido encontrar ningún plugin que haga lo que quiero.

¿O hay alguna herramienta de gestión de ssh mejor que pueda mostrar un texto personalizado en el título de una conexión ssh?

4voto

Douglas Puntos 10417

La mejor manera (IMO) es establecer las variables necesarias en su bash_profile de su máquina remota. Entiendo que no quiere modificar cualquier cosa en su control remoto, pero es importante tener en cuenta que lo que está haciendo es establecer la variable de entorno PROMPT_COMMAND

Una vez iniciada la sesión en su control remoto, emita el comando echo $HOSTNAME y echo $PROMPT_COMMAND . Lo más probable es que obtenga el nombre de host de su máquina y el segundo aparecerá en blanco, lo que significa que no está configurado.

Cómo fijar el título

Edita tu .bash_profile que se encuentra en su directorio de inicio en el remoto. Esto es su y no afectará al resto del sistema. Añade la siguiente línea:

PROMPT_COMMAND='echo -ne "\033]0;${HOSTNAME}\007"'

El \033]0; ( Esc 0; ) es el código de escape para establecer el título. El ${HOSTNAME} es el nombre de su máquina.

Guarda tu perfil, cierra la sesión y vuelve a entrar y tu barra de título debería reflejar ahora tu nombre de host.

Conexión por nombre de host vs. IP

Hay dos maneras de hacerlo:

  • Establecer el nombre de host en el DNS
  • modificar su local /etc/hosts archivo

Yo prefiero configurar esto en el DNS para que el nombre esté disponible para todos los ordenadores de su red. Asumiendo que tienes un router de "grado de consumidor" (como Linksys o Netgear), sólo tienes que añadir el nombre de host a tu arrendamiento estático DHCP (consulta la documentación de tu router para más detalles)

Si estás en una red corporativa, el administrador de la red puede añadir un registro al servidor DNS que apunte a tu host.

Si esas dos opciones no están disponibles, puede simplemente editar su /etc/hosts archivo (necesita root permisos. A continuación se muestra mi /etc/hosts se utiliza como ejemplo:

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
192.168.10.22   fatjoe

He añadido el nombre de host fatjoe hasta el final del hosts archivo. Cuando guardo y salgo, si escribo ping fatjoe inmediatamente comienza a hacer ping a la IP correcta - el cambio es inmediato.

0 votos

Descubrí que la edición /etc/hostname en la máquina remota me funciona. La máquina remota es Ubuntu 14.04. Es extraño que la edición de /etc/hosts no funciona en mi caso.

0 votos

Todavía me gustaría que hubiera un método que no requiriera ninguna modificación en la máquina remota. El cliente ssh de Windows, como Xshell, es capaz de hacer esto. Acabo de migrar de Windows a mac.

0 votos

Cuando está en la máquina remota, ¿qué hace el comando hostname le da (antes de editar el /etc/hostname archivo)? En cuanto a que sea una cosa de Windows/Mac, suena como si Xshell estuviera "chapurreando" esto. En todos mis años de trabajo con BSD/Solaris/Windows/Mac, siempre establecí esta información en el remoto - así que era lo mismo en todas partes.

1voto

siva Puntos 23

Añada lo siguiente a su ~/.ssh/config :

Host yourname
    HostName server.example.com
    Port 22
    User root

A continuación, utilice ssh yourname y "tu nombre" se mostrará en la barra de título.

2 votos

No, este método no funciona en mi máquina.

0 votos

'youname' sólo aparece en la barra de título durante el establecimiento de la conexión ssh.

0 votos

Una vez establecida la conexión, vuelve a cambiar a ubuntu@ip-XX-XX-XX-XX

1voto

He seguido toda la respuesta de este post y la guía oficial pero sin éxito.

Comprobando más a fondo, descubrí el ~/.bashrc en la máquina de destino estaba sobrescribiendo $PS1 y así volver a poner el nombre por defecto.

Si tiene el mismo problema, podría valer la pena buscar esas líneas en ~/.bashrc y edítalos para que muestren el título que deseas ( $NICKNAME en mi caso) para que aparezca en la ficha del terminal.

 case "$TERM" in
 xterm*|rxvt*)
     PS1="\[\e]0;${debian_chroot:+($debian_chroot)}$NICKNAME: \w\a\]$PS1"
     ;;
 *)
     ;;
 esac```

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X