¿Cómo identificar en qué servidor estás cuando usas ssh desde la terminal?
Tengo que ingresar a 30 servidores diariamente y cambiar de uno a otro constantemente.
Actualmente estoy editando el nombre de la pestaña y escribiendo la dirección IP para saltar de una a otra.
¿Existe una forma automática de hacerlo (asignando la dirección IP del servidor como el nombre de la pestaña)? ¿Alguna otra alternativa que no implique editar un archivo en cada servidor?
command-line
ssh
RASG
fuente
fuente
user@hostname
en el primer host que conecto. Me gustaría ver la dirección IP. Además, si salto deserver1
aserver2
, la pestaña no cambia los nombres.Respuestas:
Usualmente uso el nombre de host, establecido a través de
$PS1
. Sin embargo, si se tomara la molestia, puede comenzar a usar GNUscreen
y luego podría definir una función como esta:Explicación:
screen
no permite directamente que el shell remoto haga esto, y tiene que personalizarlo para permitirlo, lo que le facilita establecer un título localmente y apegarse a él.echo
cadena correcta . Es posible que tengas que hacerlo también.screen
para iniciar una sesión con elssh
comando. La sesión finaliza cuando sale el comando.Puede personalizar esto de varias maneras. Por ejemplo, puede guardar los nombres de host e IP en un archivo y leerlo (algo así como el
ssh_config
) (y tal vez guardar otras cosas para el título, como nombres de usuario).Ahora usa
ssh-title some.host
para conectarte. Creo que esta es la única forma de hacerlo sin editar nada del lado del servidor.fuente
Algunas formas de identificar un servidor:
PS1
) y título del terminal : inseguro (cualquiera puede duplicarlo) pero simple y práctico.ip address
- seguro con una huella digital SSH y más fácil de leer.hostname
- inseguro pero muy legible.fuente
Otra opción es usar liquidprompt --- funciona para ambos
bash
yzsh
, y se puede configurar fácilmente para tener el título del terminal configurado e incluso para colorear en diferentes colores el nombre de host en el indicador:fuente
Esta solución es un poco complicada, pero creo que hará lo que estás buscando. Necesitará
xdotool
ewmctrl
instaló para que esto funcione.Primero tiene que editar su
~/.bashrc
archivo porque, por defecto, el terminal restablece su título después de cada línea, lo que hace que los títulos de la línea de comandos sean inútiles.Justo después de:
xterm*|rxvt*)
Reemplazar:
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
Con:
PS1="${debian_chroot:+($debian_chroot)}\u@\h \w\a$ "
A continuación, crearemos un
ssh
script personalizado llamado lo que quieras, pero para esta respuesta llamaré al míotab-ssh
. Abra un editor de texto y guarde lo siguiente comotab-ssh
:Luego hazlo ejecutable:
chmod +x tab-ssh
Ahora, suponiendo que esté utilizando
bash
ygnome-terminal
ejecutando el script, debe abrir una nueva pestaña, cambiarle el nombre e iniciar lassh
sesión. Por ejemplo:tab-ssh [email protected]
abrirá una nueva pestaña, cámbiele el nombre a
0.0.0.0
(es decir, todo lo que sigue al signo "@") y luego ejecute[email protected]
.Creado usando lo siguiente:
fuente