24 lines
		
	
	
	
		
			635 B
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
	
		
			635 B
		
	
	
	
		
			Text
		
	
	
	
	
	
|  | #!/usr/bin/python | ||
|  | # Find duplicate keys in ~/.ssh/known_hosts | ||
|  | # | ||
|  | # Of course, we should have been more careful in the first place :) | ||
|  | 
 | ||
|  | from __future__ import division, print_function | ||
|  | from collections import defaultdict | ||
|  | import os.path | ||
|  | import re | ||
|  | 
 | ||
|  | 
 | ||
|  | hostnames_per_key = defaultdict(list) | ||
|  | 
 | ||
|  | with open(os.path.expanduser('~/.ssh/known_hosts')) as f: | ||
|  |     for line in f: | ||
|  |         m = re.match('(\S+)\s+(\S+\s+\S+)(.*)?', line) | ||
|  |         if m: | ||
|  |             (hostname, key, cruft) = m.groups() | ||
|  |             hostnames_per_key[key].append(hostname) | ||
|  | 
 | ||
|  | for key, hostnames in hostnames_per_key.iteritems(): | ||
|  |     if len(hostnames) > 1: | ||
|  |         print(hostnames) |