¿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?
fuente
¿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?
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/config
es consistentemente formateado:
awk '/Host $youralias/ {getline; print $2}' .ssh/config
Solo estoy publicando esto, ya que me gustaría entender cómo usarlo awk
para hacer esto, pero mi conocimiento es, obviamente, bastante limitado.
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 mainserver
y haría ping 192.168.0.20.
Esta es una forma un poco más robusta de recuperar la HostName
base Host
en el .ssh/config
archivo.
sshalias()
{
awk "\$1==\"Host\" {host=\$2} \$1==\"HostName\" && host==\"$1\" {print \$2}" "$HOME/.ssh/config"
}
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
).