Getting SSH fingerprints for machines in your network
Some time ago we were trying to get SSH fingerprints for all machines in our local network. Solution is not that straightforward, but it’s not a rocket science either:
#!/bin/bash
tmpfile=$(mktemp)
for i in $(seq 2 254); do
ssh-keyscan -t rsa,dsa,ecdsa 192.168.1.$i >> $tmpfile
done
ssh-keygen -l -f $tmpfile
rm -f $tmpfile
First, we retrieve the keys using ssh-keyscan
, store them into temporary file and compute fingerprints afterwards using ssh-keygen
. Or is there a less complex and more elegant solution?
PS: Thanks David for kicking in the right direction.