como descobrir o ip de um ssh HostName

7

Existe uma maneira simples de recuperar o IP de um HostName de uma configuração ssh na linha de comando? Muitas vezes eu tenho que usar scp e gostaria de me conectar a uma máquina, mas lembro apenas do HostName.

    
por m33lky 29.11.2011 / 04:15

5 respostas

2

scp lerá seu ~/.ssh/config e /etc/ssh/ssh_config . contanto que você scp de / para o nome de um dos aliases do host em sua configuração ssh, ele deve funcionar.

desde que parece ser curto para ser uma resposta, aqui está mais algumas informações com coisas que você pode fazer com a sua configuração ssh ...

Aqui está uma postagem que descreve alguns dos recursos avançados do arquivo de configuração ssh: link

Precisa encapsular o ssh / scp através de um proxy http? não há problema, basta usar as etapas descritas aqui: link

Outro uso da opção ProxyCommand: link

    
por 29.11.2011 / 16:24
4

Para mapear o argumento host fornecido na linha de comando para a entrada ssh_config hostname é fácil usando ssh em si.

Você pode pedir para avaliar e imprimir o que seria usado para a configuração de uma linha de comando, sem realmente se conectar. Então você simplesmente precisa extrair o que está listado para hostname (observe que ele pode unificar nomes de chaves de configuração convertendo-os em letras minúsculas). Um exemplo simples é:

ssh -G database | awk '/^hostname / { print $2 }'

Se o arquivo .ssh / config contém:

Host database
Hostname database.example.com

Isso imprimirá database.example.com .

Para fazer ping, você pode avaliar a saída e usá-la como argumento:

ping $(ssh -G database | awk '/^hostname / { print $2 }')
    
por 22.07.2016 / 21:45
2

Não é necessário fazer isso para scp , mas você pode usar os rastreamentos de depuração de ssh .

ssh -v HostName ' ' 2>&1 | grep '^debug1: Connecting to'
    
por 29.11.2011 / 23:05
1

Normalmente, você pode fazer host HostName e obter o endereço IP.

Se host não estiver instalado (deve ser), você poderá usar nslookup HostName 8.8.8.8 , que usará 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ê tem que usar um "nome de domínio totalmente qualificado", completo com host, domaiin e "TLD" (.org, .com, .net esse tipo de sufixo).

    
por 29.11.2011 / 04:33
0

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
    
por 08.02.2015 / 13:16