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.
screennã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
echocorreta. Você pode ter que fazer isso também. - Finalmente, use
screenpara 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.