O método que uso é para gerar uma cor para o nome do host a partir do nome do host. Não há muitas cores para escolher, por isso será fácil gerar conflitos, mas é útil para a pequena quantidade de máquinas que eu gerencio.
hostnamecolor=$(hostname | od | tr ' ' '\n' | awk '{total = total + $1}END{print 30 + (total % 6)}')
PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\[\e[${hostnamecolor}m\]\]\h \[\e[32m\]\w\[\e[0m\]\n$ '
A primeira linha gera um número entre 30 (inc) e 36 (exc) do nome do host da máquina. A segunda linha aplica-o ao prompt com nome de usuário e caminho em verde (32) e o nome do host na cor gerada.
Não há cores de fundo definidas e eu excluo ciano (36) e branco (37) do primeiro plano para evitar conflitos com os planos de fundo dos terminais que eu uso.