De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


ssh acessando via MAC address

Colaboração: Sérgio Luiz Araújo Silva

Data de Publicação: 10 de junho de 2010

MAC ADDRESS ou (Media Access Control), como todos sabem é uma identificação única da sua placa de rede. O comando ifconfig retorna este endereço. Veja um exemplo de saida:

$ sudo ifconfig
eth0 Link encap:Ethernet HWaddr 00:0F:EA:B2:53:85
inet addr:192.168.2.5 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20f:eaff:feb2:5385/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:471 errors:0 dropped:0 overruns:0 frame:0
TX packets:695 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:160637 (156.8 KiB) TX bytes:86193 (84.1 KiB)
Interrupt:185 Base address:0×6000

Observe na 1ª linha o último campo, após HWaddr, isso mesmo: 00:0F:EA:B2:53:85. Este valor é o endereço físico de sua placa de rede.

Se sua rede trabalha com endereçamento automático, no qual os endereços mudam constantemente é impossível saber qual o endereço foi atribuido àquele computador que você costuma acessar.

A solução...

Anote o MAC do computador que você costuma acessar

Instale o programa arp-scan

$ sudo aptitude install -y arp-scan

Faça login como root

Vamos a um exemplo da saida do arp-scan:

$ arp-scan --interface=eth0 --localnet
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.5.2 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.1.1   00:c0:9f:09:b8:db    QUANTA COMPUTER, INC.
192.168.1.4   00:02:b3:bb:5c:09    Intel Corporation
192.168.1.3   00:02:b3:bb:66:98    Intel Corporation
192.168.1.5   00:02:a5:90:c3:e6    Compaq Computer Corporation
192.168.1.6   00:c0:9f:0b:91:d1    QUANTA COMPUTER, INC.

Na minha rede doméstica faço:

$ arp-scan 10.1.1.1/24

O comando acima lista os outros hosts (computadores) ativos mostrando o ip atual o endereço MAC e a marca da placa de rede.

Construindo o comando

No caso do ssh se o ip mudou ele vai dar erro na conferência da chave de autenticação, portanto sempre apague a pasta .ssh ou caso o ssh reclame você já sabe que terá que apagar a pasta ~/.ssh com o comando rm -rf ~/.ssh

Vamos ao comando

$ ssh usuario@`arp-scan 10.1.1.0/24 | awk '/00:1b:11:dc:a9:65/ {print $1}'`

Considere 00:1b:11:dc:a9:65 como o MAC do computador que você está buscando na rede.

Observe que o ssh recebe uma filtragem da saida do arp-scan feita pelo awk. No caso o awk está buscando /00:1b:11:dc:a9:65/ e exibindo a coluna 1. Se usarmos aspas duplas quem enxergará o cifrão será o bash e não o awk. Para o awk o cifrão representa o número dos campos. Então estamos dizendo ao awk o seguinte:

Querido awk, procure pela linha que contém /00:1b:11:dc:a9:65/ neste redirecionamento '|' que está recebendo do arp-scan e imprima a coluna 1. Tudo isto está ocorrendo para fornecer o campo IP do comando

$ ssh usuario@IP

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários (1)

Avatar
Novo

Não precisa apagar toda a pasta .ssh, isso iria apagar as chaves públicas/privadas que tenham sido criadas.

Basta apagar o arquivo .ssh/knowhosts ou melhor ainda, apagar apenas a linha dentro deste arquivo que contenha o IP anteriormente utilizado.



Veja a relação completa dos artigos de Sérgio Luiz Araújo Silva