É possível consultar ~ / .ssh / config na linha de comando? Digamos que eu gostaria de recuperar para qual endereço IP esse apelido específico aponta em um programa separado, é possível?
fonte
É possível consultar ~ / .ssh / config na linha de comando? Digamos que eu gostaria de recuperar para qual endereço IP esse apelido específico aponta em um programa separado, é possível?
Se eu entender que você quer apenas o endereço IP retornado, ie., 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 e seu .ssh/config
é consistentemente formatado:
awk '/Host $youralias/ {getline; print $2}' .ssh/config
Só estou publicando isso como gostaria de entender como usar awk
isso, mas meu conhecimento é, obviamente, bastante limitado.
Não tenho muita certeza do que você está perguntando ...
Digamos que você tenha um alias SSH para 'mainserver' para poder fazer isso ssh mainserver
. Se você deseja que ele também funcione ping mainserver
, é necessário inserir um alias /etc/hosts
, da seguinte forma:
/ 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 executaria o ping 192.168.0.20.
Esta é uma maneira um pouco mais robusto de recuperação da HostName
base em Host
no .ssh/config
arquivo.
sshalias()
{
awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"$1\" {print \$2}" "$HOME/.ssh/config"
}
O arquivo que você menciona é um arquivo de texto, 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 host(1)
comando O formato é bastante simples, portanto, não é muito difícil descobrir o que está lá. Observe que curingas podem ser usados no arquivo (estados da mina *.fedoraproject.org
).