Existe uma maneira simples de recuperar o IP de um HostNamede uma configuração ssh na linha de comando? Muitas vezes tenho que usar scpe gostaria de me conectar a uma máquina, mas lembro apenas do HostName.
Existe uma maneira simples de recuperar o IP de um HostNamede uma configuração ssh na linha de comando? Muitas vezes tenho que usar scpe gostaria de me conectar a uma máquina, mas lembro apenas do HostName.
Respostas:
O scp lerá o seu ~/.ssh/confige /etc/ssh/ssh_config. contanto que você scp para / do nome de um dos aliases de host na sua configuração ssh, ele deve funcionar.
como isso parece meio curto para ser uma resposta, aqui estão mais algumas informações sobre o que você pode fazer com a sua configuração ssh ...
Aqui está uma publicação que descreve alguns dos recursos avançados do arquivo de configuração ssh: http://magazine.redhat.com/2007/11/27/advanced-ssh-configuration-and-tunneling-we-dont-need-no- stinking-vpn-software /
Precisa encapsular o ssh / scp através de um proxy http? não tem problema, basta seguir as etapas descritas aqui: http://www.mtu.net/~engstrom/ssh-proxy.php
Outro uso da opção ProxyCommand: http://jasonmc.wordpress.com/2008/04/16/ssh-magic/
Mapear do hostargumento fornecido na linha de comando para a hostnameentrada ssh_config é fácil de usar ssh.
Você pode pedir para avaliar e imprimir o que seria usado para a configuração de uma linha de comando, sem realmente conectar. Em seguida, basta retirar o que está listado hostname(observe que ele canoniza os nomes das chaves de configuração convertendo-os para minúsculas). Um exemplo simples é:
ssh -G database | awk '/^hostname / { print $2 }'
Se .ssh / config contiver:
Host database
Hostname database.example.com
Isso será impresso database.example.com.
Para fazer o ping, é claro que você pode avaliar a saída e usá-la como argumento:
ping $(ssh -G database | awk '/^hostname / { print $2 }')
Não é necessário fazer issoscp , mas você pode usar sshos rastreamentos de depuração.
ssh -v HostName ' ' 2>&1 | grep '^debug1: Connecting to'
Normalmente, você pode fazer host HostNamee obterá o endereço IP.
Se hostnão estiver instalado (deve ser), você pode nslookup HostName 8.8.8.8usar os servidores DNS do Google para fazer a pesquisa.
Para fazer isso, o resolvedor da sua máquina precisa ter uma configuração correta (no arquivo /etc/resolv.conf e talvez /etc/nsswitch.conf) ou você precisa usar um "nome de domínio totalmente qualificado", completo com o host, domaiin e "TLD" (.org, .com, .net esse tipo de sufixo).
~/.ssh/config, o que eu entendo ser o ponto desta pergunta.
HostNameé um alias arbitrário, não um nome de domínio.
use um ProxyCommand falso ...
$ ssh -o 'ProxyCommand echo %h>&2' mYaLiAs 2>&1 | fgrep -v ssh_exchange_id | read actual
$ echo $actual
192.168.1.234
.ssh/confige/etc/ssh/ssh_config. existe uma razão para você não poder scp pelos aliases definidos na configuração?