Eu geralmente uso o nome do host, definido via $PS1
. No entanto, se você se der ao trabalho, você pode começar a usar o GNU screen
e então você pode definir uma função assim:
function ssh-title () {
host="${@: -1}" # You could customize it to make it identify the hostname better
IP=$(host "$host" | awk '/has address/ { print $4 }')
echo -ne '3]0;'"$host"' - '"$IP"'function ssh-title () {
host="${@: -1}" # You could customize it to make it identify the hostname better
IP=$(host "$host" | awk '/has address/ { print $4 }')
echo -ne '3]0;'"$host"' - '"$IP"'%pre%7'
screen ssh "$@"
}
7'
screen ssh "$@"
}
Explicação:
- Mesmo se você definir um título no seu shell local, ele pode ser substituído pelas configurações do shell remoto.
screen
não permite diretamente que o shell remoto faça isso, e você precisa personalizá-lo para permitir isso, facilitando a configuração de um título localmente e a manutenção dele. - Pesquise IP do nome do host , considerando o último parâmetro como o nome do host, e configure-o como o título. Eu tive que fazer um pouco de teste e erro antes de obter a string
echo
correta. Você pode ter que fazer isso também. - Finalmente, use
screen
para iniciar uma sessão com o comandossh
. 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 (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 se conectar. Acho que esta é a única maneira de fazer isso sem editar nada do lado do servidor.