¿Hay una manera simple de recuperar la IP de a HostName
desde una configuración ssh en la línea de comando? Muchas veces tengo que usar scp
y me gustaría conectarme a una máquina, pero solo recuerdo el HostName.
¿Hay una manera simple de recuperar la IP de a HostName
desde una configuración ssh en la línea de comando? Muchas veces tengo que usar scp
y me gustaría conectarme a una máquina, pero solo recuerdo el HostName.
Respuestas:
scp leerá tu ~/.ssh/config
y /etc/ssh/ssh_config
. siempre y cuando scp a / desde el nombre de uno de los alias de host en su configuración ssh, debería funcionar.
Dado que parece una respuesta breve, aquí hay más información sobre las cosas que puede hacer con su configuración ssh ...
Aquí hay una publicación que describe algunas de las características avanzadas del archivo de configuración ssh: http://magazine.redhat.com/2007/11/27/advanced-ssh-configuration-and-tunneling-we-dont-need-no- stinking-vpn-software /
¿Necesita tunelizar ssh / scp a través de un proxy http? no hay problema, solo use los pasos descritos aquí: http://www.mtu.net/~engstrom/ssh-proxy.php
Otro uso de la opción ProxyCommand: http://jasonmc.wordpress.com/2008/04/16/ssh-magic/
host
Asignar desde el argumento dado en la línea de comando a la hostname
entrada ssh_config es fácil de usar ssh
.
Puede pedirle que evalúe e imprima lo que usaría para la configuración de una línea de comando, sin conectarse realmente. Luego, simplemente necesita extraer lo que enumera hostname
( tenga en cuenta que canonicaliza los nombres de las claves de configuración al convertirlos en minúsculas). Un ejemplo simple es:
ssh -G database | awk '/^hostname / { print $2 }'
Si .ssh / config contiene:
Host database
Hostname database.example.com
Esto se imprimirá database.example.com
.
Para hacer ping, por supuesto, puede evaluar el resultado y usarlo como argumento:
ping $(ssh -G database | awk '/^hostname / { print $2 }')
No hay necesidad de hacerloscp
, pero puede usar ssh
los rastros de depuración.
ssh -v HostName ' ' 2>&1 | grep '^debug1: Connecting to'
Por lo general, puede hacerlo host HostName
y obtendrá la dirección IP.
Si host
no está instalado (debería estarlo), puede usar el nslookup HostName 8.8.8.8
que usará los servidores DNS de Google para realizar la búsqueda.
Para hacer estas cosas, o bien el resolutor de su máquina debe tener una configuración correcta (en el archivo /etc/resolv.conf y tal vez /etc/nsswitch.conf) o debe usar un "nombre de dominio completo", completo con host, domaiin y "TLD" (.org, .com, .net ese tipo de sufijo).
~/.ssh/config
, que entiendo que es el punto de esta pregunta.
HostName
es un alias arbitrario, no un nombre de dominio.
use un falso ProxyCommand ...
$ ssh -o 'ProxyCommand echo %h>&2' mYaLiAs 2>&1 | fgrep -v ssh_exchange_id | read actual
$ echo $actual
192.168.1.234
.ssh/config
y/etc/ssh/ssh_config
. ¿Hay alguna razón por la que no pueda scp por los alias definidos en la configuración?