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:
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