40
40
"rsa_private" : ("/etc/ssh/ssh_host_rsa_key", 0600),
41
41
"rsa_public" : ("/etc/ssh/ssh_host_rsa_key.pub", 0644),
42
42
"dsa_private" : ("/etc/ssh/ssh_host_dsa_key", 0600),
43
"dsa_public" : ("/etc/ssh/ssh_host_dsa_key.pub", 0644)
43
"dsa_public" : ("/etc/ssh/ssh_host_dsa_key.pub", 0644),
44
"ecdsa_private" : ("/etc/ssh/ssh_host_ecdsa_key", 0600),
45
"ecdsa_public" : ("/etc/ssh/ssh_host_ecdsa_key.pub", 0644),
46
48
for key,val in cfg["ssh_keys"].items():
47
49
if key2file.has_key(key):
48
50
util.write_file(key2file[key][0],val,key2file[key][1])
50
priv2pub = { 'rsa_private':'rsa_public', 'dsa_private':'dsa_public' }
52
priv2pub = { 'rsa_private':'rsa_public', 'dsa_private':'dsa_public',
53
'ecdsa_private': 'ecdsa_public', }
51
55
cmd = 'o=$(ssh-keygen -yf "%s") && echo "$o" root@localhost > "%s"'
52
56
for priv,pub in priv2pub.iteritems():
53
57
if pub in cfg['ssh_keys'] or not priv in cfg['ssh_keys']: continue
58
62
# if not, generate them
59
63
genkeys ='ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N ""; '
60
64
genkeys+='ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa -N ""; '
65
genkeys+='ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -t ecdsa -N ""; '
61
66
subprocess.call(('sh', '-c', "{ %s } </dev/null" % (genkeys)))