OpenSSH - mapeia aliases em ~ / .ssh / config para endereços IP na linha de comando

9

É possível consultar ~ / .ssh / config na linha de comando? Digamos que eu gostaria de recuperar o endereço IP para o qual o alias específico aponta em um programa separado, é possível?

    
por user1042840 28.01.2013 / 19:47

4 respostas

2

Se eu entendi que você quer apenas o endereço IP retornado, ou seja, 192.168.1.1, então esta é uma maneira (incrivelmente frágil) de consultar o arquivo a partir da linha de comando, desde que você tenha as permissões apropriadas para lê-lo < em> e seu .ssh/config é formatado de forma consistente:

awk '/Host $youralias/ {getline; print $2}' .ssh/config


Estou apenas postando isso como gostaria de entender como usar awk para fazer isso, mas meu conhecimento é, obviamente, bastante limitado.

    
por 29.01.2013 / 00:44
1

Não totalmente certo do que você está perguntando ...

Digamos que você tenha um alias de SSH para "mainserver" para poder fazer ssh mainserver . Se você quiser que ele também funcione para ping mainserver , você precisa colocar um alias em /etc/hosts , assim:

/ etc / hosts:

192.168.0.1 comp-one
192.168.0.2 comp-two

192.168.0.20 mainserver

Então você poderia fazer ping mainserver e pingar 192.168.0.20.

    
por 28.01.2013 / 22:57
0

Esta é uma maneira um pouco mais robusta de recuperar o HostName com base no Host no arquivo .ssh/config .

sshalias()
{
    awk "\==\"Host\" {host=\} \==\"HostName\" && host==\"$1\" {print \}" "$HOME/.ssh/config"
}
    
por 23.07.2016 / 01:57
-1

O arquivo que você mencionou é um arquivo de texto, ele contém nomes de host e possivelmente endereços IP para identificar as máquinas às quais você se conecta. Os nomes de host podem ser resolvidos para endereços IP usando o comando host(1) . O formato é bem simples, então não é difícil descobrir o que está lá. Observe que curingas podem ser usados no arquivo (estados de mina *.fedoraproject.org ).

    
por 28.01.2013 / 23:09