Existe um utilitário para executar ping em um servidor usando aliases em ssh config (em vez de / etc / hosts)?

4

Estou tentando padronizar meus aliases de servidores em projetos, vinculando arquivos de configuração ssh que posso manter sob controle de versão.

Eu gostaria de poder apenas definir aliases de máquinas junto com endereços IP e chaves ssh em um único lugar (as configurações ssh). Isso funciona muito bem com utilitários baseados em ssh como / bin / ssh e (acredito) scp. Você até consegue completar a guia.

No entanto, se eu definir os aliases em minha configuração ssh, os aliases não estarão disponíveis para ping e outros utilitários de rede baunilha. Eu não quero ter que manter meus / etc / hosts sincronizados com meus arquivos de configuração ssh.

Existe uma maneira de

a) obtenha aliases ssh para trabalhar automaticamente como se estivessem em / etc / hosts. ou b) encontre um conjunto de utilitários de rede que use a configuração ssh ativa como fonte de aliases.

?

    
por Peter Groves 27.05.2012 / 23:42

1 resposta

1

Eu escrevi uma pequena função shell que faz exatamente isso e pode ser colocada, por exemplo no seu .bashrc .

Ele substitui ping e faz a pesquisa do último argumento (host) em .ssh/config antes de chamar o original /bin/ping , ou seja, ping -c 2 <host> chamará /bin/ping -c2 <hostname> onde <hostname> é o IP / nome do host correspondente em código%. Se nenhum host correspondente ao último argumento for encontrado no arquivo, o valor original será usado com o padrão .ssh/config .

ping()
{
    # Process args
    local i=0
    local options=""
    local host=""
    for arg
    do
        i=$(($i+1))
        if [ "$i" -lt "$#" ]
        then
            options="${options} ${arg}"
        else
            host="${arg}"
        fi
    done

    # Find host
    local hostname=$(awk "\==\"Host\" {host=\} \==\"HostName\" && host==\"${host}\" {print \}" "$HOME/.ssh/config")
    if [ -z "$hostname" ]
    then
        hostname="$host"
    fi

    # Run ping
    /bin/ping $options $hostname
}
    
por 23.07.2016 / 02:10

Tags