OpenSSH: asigna alias en ~ / .ssh / config a direcciones IP en la línea de comandos

9

¿Es posible consultar ~ / .ssh / config en la línea de comando? Digamos que me gustaría recuperar a qué dirección IP apunta el alias particular en un programa separado, ¿es posible?

usuario1042840
fuente

Respuestas:

2

Si entiendo que lo que desea la dirección IP devuelta, es decir., 192.168.1.1, entonces esta es una forma (muy frágil) de consultar el archivo desde la línea de comandos, siempre y cuando tenga los permisos apropiados para leerlo y su .ssh/configes consistentemente formateado:

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


Solo estoy publicando esto, ya que me gustaría entender cómo usarlo awkpara hacer esto, pero mi conocimiento es, obviamente, bastante limitado.

jasonwryan
fuente
1

No estoy totalmente seguro de lo que estás preguntando ...

Digamos que tiene un alias SSH para 'servidor principal' para que pueda hacerlo ssh mainserver. Si desea que también funcione ping mainserver, debe poner un alias /etc/hosts, así:

/ etc / hosts:

192.168.0.1 comp-one
192.168.0.2 comp-two

192.168.0.20 mainserver

Entonces podría hacerlo ping mainservery haría ping 192.168.0.20.

BenjiWiebe
fuente
0

Esta es una forma un poco más robusta de recuperar la HostNamebase Hosten el .ssh/configarchivo.

sshalias()
{
    awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"$1\" {print \$2}" "$HOME/.ssh/config"
}
Andrzej Pronobis
fuente
-1

El archivo que menciona es un archivo de texto, contiene nombres de host y posiblemente direcciones IP para identificar las máquinas a las que se conecta. Los nombres de host se pueden resolver en direcciones IP con el host(1)comando El formato es bastante simple, por lo que no es demasiado difícil descubrir qué hay allí. Tenga en cuenta que los comodines se pueden usar en el archivo (estados mineros *.fedoraproject.org).

vonbrand
fuente