Como identificar em qual servidor você está usando o ssh do terminal?
Eu tenho que ssh em 30 servidores diariamente, e alternar entre eles constantemente.
Atualmente, estou editando o nome da guia e escrevendo o endereço IP para pular de um para outro.
Existe uma maneira automatizada de fazer isso (atribuir o endereço IP do servidor como o nome da guia)? Alguma outra alternativa que não envolva a edição de um arquivo em cada servidor?
command-line
ssh
RASG
fonte
fonte
user@hostname
no primeiro host que eu conecto. eu gostaria de ver o endereço IP. Além disso, se eu pular deserver1
paraserver2
, a guia não mudará de nome.Respostas:
Eu normalmente uso o nome do host, definido via
$PS1
. No entanto, se você resolver o problema, poderá começar a usar o GNUscreen
e definir uma função como:Explicação:
screen
não permite que o shell remoto faça isso diretamente, e você deve personalizá-lo para permitir, facilitando a definição de um título localmente e cumprindo-o.echo
corda certa . Você pode ter que fazer isso também.screen
para iniciar uma sessão com ossh
comando A sessão termina quando o comando sai.Você pode personalizar isso de várias maneiras. Por exemplo, você pode salvar os nomes de host e IPs em um arquivo e ler a partir dele (mais ou menos como o
ssh_config
) (e talvez salvar outras coisas para o título, como nomes de usuário).Agora use
ssh-title some.host
para conectar. Eu acho que essa é a única maneira de fazer isso sem editar nada do lado do servidor.fonte
Algumas maneiras de identificar um servidor:
PS1
) e título do terminal - inseguro (qualquer um pode duplicar), mas simples e prático.ip address
- seguro com uma impressão digital SSH e mais facilmente legível.hostname
- inseguro, mas muito legível.fonte
Outra opção é usar liquidprompt --- funciona para ambos
bash
ezsh
, e pode ser facilmente configurado para definir o título do terminal e até colorir em cores diferentes o nome do host no prompt:fonte
Essa solução é um pouco imprudente, mas acho que ela fará o que você está procurando. Você precisará
xdotool
e estáwmctrl
instalado para que isso funcione.Primeiro você precisa editar seu
~/.bashrc
arquivo porque, por padrão, o terminal redefine seu título após cada linha, tornando inútil o título da linha de comando.Logo depois:
xterm*|rxvt*)
Substituir:
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
Com:
PS1="${debian_chroot:+($debian_chroot)}\u@\h \w\a$ "
Em seguida, criaremos um
ssh
script personalizado chamado o que você quiser, mas, para esta resposta, chamarei de meutab-ssh
. Abra um editor de texto e salve o seguinte comotab-ssh
:Em seguida, torne-o executável:
chmod +x tab-ssh
Agora, supondo que você esteja usando
bash
egnome-terminal
executando o script, abra uma nova guia, renomeie-a e inicie assh
sessão. Por exemplo:tab-ssh [email protected]
abrirá uma nova guia, renomeie-a para
0.0.0.0
(ou seja, tudo após o sinal "@") e execute[email protected]
.Criado usando o seguinte:
fonte